Tag: defineproperty

奇怪的行为与'使用严格'和只读属性

在MDN严格模式参考页面上说 在正常代码中静默失败的任何赋值(赋值给非可写属性,赋值给只有getter的属性,赋值给不可扩展对象上的新属性)都将引入严格模式 所以,使用他们的例子,像下面这样的事情会抛出一个TypeError "use strict"; var obj1 = {}; Object.defineProperty(obj1, "x", { value: 42, writable: false }); obj1.x = 9; // throws a TypeError 然而,我遇到了一个看起来“严格使用”的例子,对于这个规则有点太过分了。 这是我的设置 definelol.js Object.defineProperty(Object.prototype, 'lol', { value: 'wat' }) setlol.js 'use strict'; console.log('here 0'); var sugar = { lol: '123' } console.log('here 1'); var verbose = {}; verbose.lol = '123'; console.log('here […]

如何撤消Object.defineProperty调用?

小提琴 var Assertion = function() { return { "dummy": "data" }; } Object.defineProperty(Object.prototype, 'should', { set: function(){}, get: function(){ return new Assertion(this); } }); // Insert magic here. // This needs to be false console.log(({}).should === undefined); 我有什么select在ES5中撤销defineProperty调用? 没有愚蠢的build议像Object.defineProperty = function() { }请。 下面的Object.defineProperty(Object.prototype, 'should', {}) 不起作用 和Object.defineProperty(Object.prototype, 'should', { value: undefined }) 抛出一个Uncaught TypeError: […]