Вызов функции из объекта: object.function () - PullRequest
1 голос
/ 23 апреля 2009

Как я могу вызвать функцию из объекта в javascript, как, например, в jquery вы вызываете myDiv.html (), чтобы получить html этого div.

Так что я хочу, чтобы это работало:

function bar(){
 return this.html();
}

alert($('#foo').bar());

это упрощенный пример, поэтому, пожалуйста, не говорите: просто сделайте $ ('# foo'). Html ():)

Ответы [ 3 ]

9 голосов
/ 23 апреля 2009
jQuery.fn.extend({
    bar: function() {
        return this.html();
    }
});

alert($('#foo').bar());
5 голосов
/ 23 апреля 2009

Вы имеете в виду как вы вызываете функцию с объектом в контексте ?

Это работает -

function bar() {
    return this.html();
}

bar.apply($('#foo'));

Или, если вы хотите навсегда присоединить метод к объекту,

obj = {x: 1};
obj.prototype.bar = function() {return this.x;};
obj.bar();
0 голосов
/ 23 апреля 2009

Чтобы добавить функцию getHtml к элементу div с идентификатором foo, вы можете сделать это: <pre>$("#foo")[0].getHtml = function () { return this.innerHTML; }; alert($("#foo")[0].getHtml());

Если это не то, что вы хотели, а скорее расширить jQuery, вы должны взглянуть на пост Алекса Барретта.

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