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);
我在 ES5 中有哪些选项可以撤消defineProperty
调用?
Object.defineProperty = function() { }
没有像拜托这样的愚蠢建议。
以下Object.defineProperty(Object.prototype, 'should', {})
不工作
和Object.defineProperty(Object.prototype, 'should', { value: undefined })
Uncaught TypeError: Cannot redefine property: defineProperty
在 V8 中抛出一个
Object.defineProperty(Object.prototype, 'should', {
set: function() {},
get: function() { return undefined; }
});
抛出同样的错误
delete Object.prototype.should
也不起作用