考虑以下代码:
// Creating an empty object, without inheriting (binding) to any prototype
var human = Object.create(null);
human.firstName = 'Saeed';
human.lastName = 'Neamati';
现在,我想向此对象添加fullName
属性,该对象返回对象的firstName + ' ' + lastName
。
使用对象文字表示法,我可以这样简单地编写一个getter函数:
var human = {
firstName: 'Saeed',
lastName: 'Neamati',
get fullName() {
return this.firstName + ' ' + this.lastName;
}
}
但我无法弄清楚如何将一个getter属性附加到一个已经在其他地方构建的对象。
答案 0 :(得分:2)
Object.defineProperty(<object>, <property-name>, <descriptor>);
<descriptor>
可以是:
// from the example:
{ value: 0x9f91102,
get: function() { return 0xdeadbeef; } }
答案 1 :(得分:1)
试试这个:
Human = function(){
human.firstName = 'Saeed';
human.lastName = 'Neamati';
};
human.prototype.getFullName = function(){
return this.firstName + ' ' + this.lastName;
}
var humanOne = new Human();
alert(humanOne.getFullName());
希望有所帮助:)