Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Это что ваще такое? (https://javascript.ru/forum/node-js-io-js/56033-ehto-chto-vashhe-takoe.html)

indeterm 26.05.2015 19:23

Это что ваще такое?
 
Данный код:

Object.prototype.has=Object.prototype.hasOwnProperty
delete Object.prototype.hasOwnProperty
a={a: 1}

console.log(
 a.has("a")
)


//>>>> node.js:784
//>>>>     return NativeModule._source.hasOwnProperty(id);
//>>>>                                 ^
//>>>> TypeError: undefined is not a function


-- это валидный JS-код. Он работает, в том числе и на V8. Однако, нода выдает мне эту ахинею. Поведение это противоречит семантике JS, это реальный WTF.
Как это все говно пофиксить? Можно ли? И в чем вообще прикол? Почему это происходит?

Vlasenko Fedor 27.05.2015 00:48

Object.prototype.has=Object.prototype.hasOwnProperty;
//
var a={a: 1};

console.log(
    a.has("a")
);
delete Object.prototype.hasOwnProperty;
console.log(
    a.has("a")
);
:)

indeterm 27.05.2015 01:27

Poznakomlus,
Большое спасибо за ответ, но я не понял, что это значит?

Erolast 27.05.2015 09:24

https://github.com/joyent/node/blob/...c/node.js#L787


Часовой пояс GMT +3, время: 11:28.