В эти дни я работал с этими сценариями, и после нескольких исследований я все еще не мог найти ответ.
Так вот в чем проблема, я хочу (например) добавить функцию в объект (например, .length (), поскольку у натива этого пока нет), я попробовал:
Object.prototype.length = function() { /* Some fancy work */ }; //It works!
Object.prototype["width"] = function() { /* Some fancy work */ }; //It works!
/* But the following DOESN'T work */
Object.prototype = {
length: function() { /* Some fancy work */ },
width: function() { /* Some other fancy work */ }
};
Последний не работает, и это самый короткий способ добавить функцию, используя объект {}, вот почему, я понятия не имею, почему. Я сталкивался с этим кодом (например, из jQuery 1.7.1), я пытался выяснить, как он работает, но у меня не работает. Я думаю, что это должно работать как-то, поскольку jQuery использует его, не могли бы вы показать мне, как?
Я видел много людей, использующих этот код:
a = {
b: "Something",
c: function() {}
}
А другие используют:
a.prototype = {
b: "Something",
c: function() {}
}
Так в чем же разница? Это как-то связано с первым вопросом, поэтому мне очень нравится его полностью понимать.