这是我的代码:
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)
看起来我做得很好,没有改变描述符 有任何想法吗? 谢谢
最佳答案
当您编写person.edition
时,您正在调用get方法。哪个没有定义。要调用 set 方法,您需要进行赋值
。试试这个:
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;
关于javascript - 为什么我变得未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078910/