поведение в пользу пользовательского поведения.
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
такжене работает