Прототипы встроенных объектов
наконец то сел за учебник по js и дошел до прототипов.
Но чет я не много запутался. тут написано http://learn.javascript.ru/native-pr...ject-prototype что String.__proto__ = Встроенному обьекту но я не пойму почему если его заменить String.__proto__ = {}; alert('slice'.slice(1)); то обьект String получает "доступ" к встроенному обьекту? Я так понимаю это происходит потому что в данном случает __proto__ не заменяется а расширяется ? |
нет. дело вообще в другом - читайте спеки.
а так всё работает : var a = new String("TEST"); a.__proto__ = { "FOO":"BAR" }; alert(a.FOO); |
Цитата:
перефразирую : как сделать как сделать так что бы обькту не были доступны стандартные свойства и методы |
чет я запутался с __proto__ и prototypе , а точнее в их разнице.
что бы записать в __poroto__ через prototype нужно использовать функцию конструктор var obj_ = {Where:'this'}; function constr() { this.eat = true; } constr.prototype = obj_; var c = new constr; console.log(c.__proto__); напрямую нельзя var clear = {}; clear.prototype = {eats:true}; console.log(clear.eats) а что бы расширить встроенный обьект нужно использовать такую конструкцию? String.prototype.repeat = function(times) { return new Array(times+1).join(this); } верно я понял? |
Часовой пояс GMT +3, время: 13:53. |