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
}
}