如何维护对原型对象的访问
How to maintain access to an object of prototyped objects
我不知道问题标题是否有意义,但我从未学到的一件事是如何保持对使用原型方法创建的对象的控制。更具体地说,不是通过
var Joe = new Person('Joe');
Joe.sayName();
Joe.die();
而是
var people = {};
var everyone = getAllPeopleFromSomewhere()
$.each(everyone, function(i,e){
people[i] = new Person(e.name);
});
function die(id){
people[id].die(); // obvious error
}
die(1);
我觉得我需要另一个抽象系统来管理以这种方式创建的未知数量的对象。但是使用 Id 从对象(或数组)引用它们似乎不是要走的路。
http://jsfiddle.net/vcsjx0s1/
查看您的代码,您遇到的问题源于以下两个位置:
people[i] = new Person(e.name).sayName();
这可以通过两种方式修复:拆分调用,或在sayName函数中返回this
。
Person.prototype = {
sayName: function () {
$('#' + this.name).html(this.name);
return this;
},
die : function(){
$('#' + this.name).remove();
}
};
相关文章:
- Node.js中的JavaScript原型对象效率
- 获取原型对象的名称
- 如何维护对原型对象的访问
- 文字与原型对象表示法的数据结构
- 使用原型对象向javascript对象添加自定义属性和方法的建议
- 正在重置原型对象的构造函数属性
- 编写JS原型时,所有函数都应该使用原型对象
- 什么's是原型对象的真实名称
- Javascript - 使用数组作为函数的参数,并在创建新的原型对象时更改值
- 在原型对象 jquery 上将一个按钮与另一个按钮不同
- 原型对象
- 循环遍历数组时的原型对象
- 为什么初始化的 JavaScript 对象不包含原型对象
- JavaScript 原型对象 - 如何访问继承
- Javascript:获取此原型对象名称
- 如何在数据绑定后在 KNOCKOUT js 中使用“with”访问另一个原型对象
- 这在 JavaScript 中的原型对象中的值
- 在主干中向原型对象添加值不起作用
- 删除函数原型对象
- 为什么当我在这个JavaScript对象上使用反射时,我可以'看不到在其原型对象中定义的属性