最近要做一js的控件,因为同一页面会加载好多个这种控件,并分别对不同的内容进行控制,为了不全篇复制粘贴,我想要将这个控件做成一个js的对象形式,因为从来没写过,所以就网络一下,总算整理出来了。
这里不说我那个控件,用一个别的例子。
最一开始,我写的是这样的:
var tool=function(){};
tool.prototype={
initialize:function(div){this._div=div;
}
}
我以为在调用new的时候是可以初始化的,即调用initialize函数:
var temp=new tool('testDiv')
结果不是,折腾了好久,才发现initialize函数根本就不会在new的时候执行,坑爹啊!!
正确的写法应该是这样:在声明tool时的函数就是构造函数——原谅我这么称呼吧,我不知道该怎
么称呼它——这里面负责初始化一些变量,然后prototype里才是公有的函数:
var tool=function(div){this._div=div;
};
tool.prototype={
doSth:function(){
alert(this._div);
}
}
这样就可以正常调用了:
var temp=new tool('aaa');
temp.doSth()