假设我有以下包含人员对象的JSON。
[
{
"name": "Alice",
"age": 28,
},
{
"name": "Bob",
"age": 33
}
]
如果我解析这个,我会得到一个包含两个JavaScript对象的数组。 假设,我想给这两个对象配备一个名为introduce的方法,它会执行以下操作
function introduce() {
return "My name is " + this.name + " and I am " + this.age + " years old.";
}
现在,我可以迭代我的两个人并调用
person.constructor.prototype.introduce = introduce
然而,这将会暴露引入函数在所有 JavaScript 对象中,而不仅仅是上面的两个对象。
我也可以手动将该函数附加到每个对象上,但如果我想要给我的人员扩展其他功能,我就必须再次迭代所有人员。
理想情况下,我希望有一个原型,我可以将其配备引入方法,然后将此原型附加到所有人员身上,这样,如果我稍后扩展原型,我的人员也将获得其他功能。
问题是:如何做到呢?
person.prototype.introduce = introduce
,然后删除constructor
部分即可。 - Brian GlazPerson
类,解析JSON以创建Person
。随时向Person
原型添加任何函数。 - mshsayemperson
是指对象本身,因此person.prototype
不存在。 - cookie monsterJSON.parse
的包装器,使用Object.setPrototypeOf
(查看我的答案)。 - Aegis