Javascript get运算符和defineProperty之间是否存在有效的差异?

Javascript get运算符和defineProperty之间是否存在有效的差异?,javascript,Javascript,操作员之间是否存在任何实际差异: var obj = { get prop () { //insert code here } }; 并使用: MDN页面表示兼容性大致相同。对象。defineProperty将默认为可枚举:false和可配置:false,而对象文本getter语法将默认为可枚举:true和可配置:true。这可以通过Object.getOwnPropertyDescriptor(obj,“prop”)进行验证 这意味着在前一种情况下,prop将

操作员之间是否存在任何实际差异:

var obj = {
    get prop () {
        //insert code here
    }
};
并使用:


MDN页面表示兼容性大致相同。

对象。defineProperty
将默认为
可枚举:false
可配置:false
,而对象文本getter语法将默认为
可枚举:true
可配置:true
。这可以通过
Object.getOwnPropertyDescriptor(obj,“prop”)
进行验证

这意味着在前一种情况下,
prop
将出现在
for
-
循环和
对象中。键(obj)
,执行
删除obj.prop
操作将失败(在严格模式下发出噪音,否则无声)。后一种情况正好相反

请注意,
Object.defineProperty
(或
Object.create
Object.defineProperties
)将允许您单独选择属性的可配置性和可枚举性,而Object literal getter语法将不允许

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