Прототипы встроенных объектов
наконец то сел за учебник по 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, время: 20:16. |