写一个创建命名空间的函数namespace,参数str是一个以.为分隔的字符串,函数定义后可以以如下的方式使用:
namespace("com.so.image");
com.so.image.Slider={};
在JS里,所谓的命名空间就是指用JS对象表示法的方法来定义一些属性或方法,就是把一些东西定义成对象的属性。也就是单例模式。在我们课程里的应用,比如说DOM库。 com.so.image就是image是个对象,它还是so的属性,so是com的属性(当然也是对象类型),就是创建了一个三级的对象类型的属性,用来细化一些定义。
答案如下:
function namespace(str){ var a=str.split('.') var obj=null; for(var i=0;i更完整的测试用例,即TOOL是已经存在的对象,并且TOOL下还有第二级对象TOOL.DOM,并且已经在TOOL这个对象上创建了一个fn属性是个方法。
在TOOL.DOM下面也创建了一个fn属性。
现在是再在TOOL.DOM下面创建ABCD和ABCD下面的BBC这个属性()var str="TOOL.DOM.ABCD.BBC"; var TOOL={} TOOL.DOM={}; TOOL.fn=function(){alert("TOOL");} TOOL.DOM.fn=function(){alert("DOM")}var str="TOOL.DOM.ABCD.BBC"; var TOOL={} TOOL.DOM={}; TOOL.fn=function(){alert("TOOL");} TOOL.DOM.fn=function(){alert("DOM")}