Как установить свойство объекта в функции прототипа (проблема объема)? - PullRequest
0 голосов
/ 21 сентября 2010

Это что-то тривиальное, что я забыл. Возможно, есть дубликаты - я немного искал, нашел похожее, но не смог найти краткого.

   String.prototype.test = function(){this.bar = this.length + 2;}

   var str = "foo";
   str.test();

   console.log(str);                         // foo
   console.log(str.bar);                     // undefined

Уверен, это связано с тем, что this оказался в ловушке в закрытии.

1 Ответ

0 голосов
/ 21 сентября 2010

Это связано с тем, как вы создаете свою строку в этом случае. Попробуйте:

var str = new String("Foo");

и вы обнаружите, что это волшебно работает. : -]

См. Пример по адресу: http://jsbin.com/odozo3/edit

...