gpt4 book ai didi

javascript - get 操作符和 defineProperty 之间有什么有效的区别吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:13:34 24 4
gpt4 key购买 nike

get 之间有什么真正的区别吗?运算符(operator):

var obj = {
get prop () {
//insert code here
}
};

并使用 defineProperty :

var obj;
Object.defineProperty(obj, "prop", {
get: function () {
//insert code here
}
}

MDN 页面说兼容性大致相同。

最佳答案

Object.defineProperty 将默认为 enumerable: falseconfigurable: false,而对象文字 getter 语法将默认为 enumerable: trueconfigurable: true。这可以通过 Object.getOwnPropertyDescriptor(obj, "prop") 进行验证。

这意味着在前一种情况下 prop 将出现在 for-in 循环和 Object.keys(obj) 中,并且执行 delete obj.prop 将失败(在严格模式下会发出噪音,否则会静默)。后一种情况恰恰相反。

请注意,Object.defineProperty(或Object.createObject.defineProperties)将允许您分别选择的可配置性和可枚举性你的属性,而对象文字 getter 语法不会。

关于javascript - get 操作符和 defineProperty 之间有什么有效的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com