Javascript 为什么我没有定义?

Javascript 为什么我没有定义?,javascript,Javascript,这是我的密码: var person = { name: 'Greg', year: 20 }; Object.defineProperties(person, { gender :{ value: 'male' }, edition : { value : 12 }, edition : { set:function (No) { if (No===13) {

这是我的密码:

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={
姓名:“格雷格”,
年份:20
};
对象。定义属性(人{
“性别”:{
值:“男性”
},
“版本”:{
价值:12
},
“版本”:{
设置:功能(否){
如果(否===13){
console.log('Yes')
};
}
,get:function(){
返回“hi”;
}
}
})
console.log(person.edition)

person.edition=13
你在哪里看到了
get
方法?@RayonDabre
get
是一种方法,而不是一种方法。当您访问
edition
属性时,会自动调用它。如果你不熟悉接球手和二传手,这里有一个新的例子。对我来说是新的!详细的解释会有帮助@RayonDabre(我链接的MDN页面中的代码)谢谢..与b:function(){返回this.a+1;}有什么不同吗?