如何拥有一个原型的一堆实例
How to have a bunch of instances of a prototype?
Fiddle!!
我正在尝试建立一个系统,在那里我可以有一堆colorBox
的实例,我在这里有一个名为box
的实例。一切都很好,只是我想在创建新的colorBox后更改它们的样式,比如box.resetColor('blue');
。为了测试这一点,我创建了一个简单的函数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();
http://jsfiddle.net/K8cha/5/
我可能误解了你在这里想要做什么,但你宣布巫毒的方式有语法错误。此更改使其起作用:
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对象的后代,因此可以与自己的属性等一起使用。
相关文章:
- 如何用JavaScript或jQuery替换一堆标签
- JavaScript-传单,添加了一堆标记
- 如何使用Gulp编译并移动到另一个文件夹一堆sass文件
- 有没有更好的方法以一定的顺序执行一堆部分异步的jQuery函数
- 使用一堆 setTimeouts 还是一个 setInterval 来刷新一堆对象更有效
- 用 JavaScript 加一堆浮点数,总和上的误差界限是多少
- 为下一次实例化设置的主干视图属性
- 如何防止/延迟一堆 Bootstrap 模块立即加载其内容以防止站点加载时间缓慢
- 将某些内容与一堆斜杠匹配的正确方法
- 使用 setInterval 运行一堆 ajax 好吗?超过 5 个 AJAX 正在运行
- 可以调用 document.querySelector( ) 一堆
- 在超大的jquery中,如何使用java动态传递一堆图像
- 在木偶布局中维护一堆木偶项目视图
- 从数组中按顺序执行一堆 WinJS 承诺
- jquery/js - 我有一堆值(字符串).我想通过 POST 将其发送到另一个 URL,我该怎么做
- 在提交之前将一堆复选框输入附加到表单,然后隐藏它们
- 如何按顺序调用一堆包含 ajax 的函数
- 不断出现逻辑错误,将我的数组输出减少到一堆零
- 如何从一堆视图中删除一个类
- 如何拥有一个原型的一堆实例