Добавление динамической функции к объекту - PullRequest
0 голосов
/ 08 сентября 2010

Я пытаюсь заставить это работать, но это не так:

var i; 

i.test = function() { 
    alert("hello"); 
}

i.test();

Я ожидаю, что код выдаст предупреждение 'hello', но вместо этого консоль ошибок Firefox показывает:

missing } in XML expression
alert("hello"); 
---------------^

Как мне это исправить ...

Ответы [ 3 ]

4 голосов
/ 08 сентября 2010

Ваш i не привязан ни к чему, поэтому он не является объектом.Фактически он указывает на глобальный объект undefined, который в Firefox доступен только для чтения (как и должно быть).Вам нужно:

var i = {}; //init to empty object

тогда все будет хорошо.

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

Вы не можете добавить функцию к неопределенному значению, вам нужно создать фактический объект:

var i = {};

Хотя это и не требуется, у вас должна быть точка с запятой в конце оператора, чтобы избежать неоднозначности:

i.test = function() { 
  alert("hello"); 
};
0 голосов
/ 08 сентября 2010
var i = {};
i.test = function() { 
    alert("hello"); 
};

У вас было две отдельные проблемы. Вы не инициализировали i (как отметил slebetman), и вам не хватало точки с запятой, заставляя переводчика использовать замену точки с запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...