Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2012, 20:46
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Прототипы встроенных объектов
наконец то сел за учебник по js и дошел до прототипов.
Но чет я не много запутался.
тут написано http://learn.javascript.ru/native-pr...ject-prototype что
String.__proto__ = Встроенному обьекту

но я не пойму почему если его заменить
String.__proto__ = {};

      alert('slice'.slice(1));

то обьект String получает "доступ" к встроенному обьекту?
Я так понимаю это происходит потому что в данном случает __proto__ не заменяется а расширяется ?
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2012, 21:24
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

нет. дело вообще в другом - читайте спеки.

а так всё работает :
var a = new String("TEST");
a.__proto__ = { "FOO":"BAR" };

alert(a.FOO);
Ответить с цитированием
  #3 (permalink)  
Старый 06.09.2012, 21:34
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от melky Посмотреть сообщение
нет. дело вообще в другом - читайте спеки.

а так всё работает :
var a = new String("TEST");
a.__proto__ = { "FOO":"BAR" };

alert(a.FOO);
эм.. ты меня не правильно понял...
перефразирую :
как сделать как сделать так что бы обькту не были доступны стандартные свойства и методы
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2012, 08:53
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

чет я запутался с __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);
}

верно я понял?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти точки соприкосновения двух объектов в RaphaelJS Fatalityap Библиотеки/Тулкиты/Фреймворки 3 03.08.2012 16:33
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28
ООП: как создавать наследника от встроенных объектов? Langalier Общие вопросы Javascript 17 02.02.2009 17:07