这是我的代码:
var person = {
name: 'Greg',
year: 20
};
Object.defineProperties(person, {
gender :{
value: 'male'
},
edition : {
value : 12
},
edition : {
set:function (No) {
if (No===13) {
console.log('Yes')
};
}
}
})
console.log(person.edition)
看起来我做得很好,没有改变描述符 有任何想法吗? 感谢
答案 0 :(得分:1)
当您编写person.edition
时,您正在调用get方法。哪个没有定义。要调用set方法,您需要执行assignment
。试试这个:
var person = {
name: 'Greg',
year: 20
};
Object.defineProperties(person, {
"gender" :{
value: 'male'
},
"edition" : {
value : 12
},
"edition" : {
set:function (No) {
if (No===13) {
console.log('Yes')
};
}
, get:function () {
return "hi";
}
}
})
console.log(person.edition)
person.edition = 13;