javascript - 为什么我变得未定义?

标签 javascript

这是我的代码:

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/

相关文章:

javascript - 对 John Resig 的 JavaScript 类框架的改进

javascript - 如何在深层嵌套对象中保存状态?

javascript - 区分联合类型时出现错误 ("property not found in object type")

带参数的 JavaScript 函数

javascript - Firefox 扩展中的 localStorage

javascript - 纸张输入故障排除中的验证,如何进行?

javascript - 将数据从嵌套数组转换为对象

javascript - 旋转后得到正确的左上角坐标

javascript - JQGrid 'Change' dataevent 在更改函数内更改网格行数据后未触发

javascript - 在提交表单的 div 中显示消息