我正在尝试建立一个系统,我可以拥有一堆colorBox
的实例,我在这里有一个名为box
的实例。一切都运行正常,除了我希望能够在创建类似box.resetColor('blue');
之类的东西之后改变我的新colorBox的样式。为了测试这个,我创建了一个简单的函数vodoo
这只是提醒你。但我不能调用box.vodoo()
因为colorBox是一个函数而不是一个对象。
有一堆colorbox
实例的最佳方法是什么,可以随时更新,而无需更新box
的所有属性(只有你想要的属性)?
JS:
var colorBox = function(node, options) {
this.setSize = function(){
node.style.width = options.width + 'px';
node.style.height = options.height + 'px';
};
this.setColor = function(){
node.style.backgroundColor = options.color;
};
this.setSize();
this.setColor();
vodoo(){
alert('vodoo');
}
}
var node = document.getElementById('thing1');
var options = {
color: 'red',
width: 200,
height: 200
}
var box = new colorBox(node, options);
box.vodoo();
答案 0 :(得分:1)
我可能误解了你在这里要做的事情,但是你宣布伏都教的方式存在语法错误。此更改导致此操作:
var colorBox = function(node, options) {
this.setSize = function(){
node.style.width = options.width + 'px';
node.style.height = options.height + 'px';
};
this.setColor = function(){
node.style.backgroundColor = options.color;
};
this.setSize();
this.setColor();
this.voodoo = function(){
alert('voodoo');
}
}
此外,在JS中,Function对象是Object对象的后代,因此可以使用它自己的属性等。