функция как метод для всех элементов - PullRequest
2 голосов
/ 09 ноября 2011

Я хочу создать функцию, которая будет вести себя как метод для всех элементов, таких как методы JQuery. для примера:

function myFunction(p1,p2){
    //things
}
element.myFunction(p1,p2);

Я думаю, что Object.prototype не разрешен. Любая идея ?? Пожалуйста, я новичок в ООП в JavaScript. Thx

Ответы [ 2 ]

3 голосов
/ 09 ноября 2011
myFunction.call(element, p1, p2);

вызовет myFunction(p1, p2) с this, привязанным к element, аналогично тому, как если бы myFunction были в element.prototype и были вызваны через element.myFunction(p1, p2).

1 голос
/ 09 ноября 2011

Вы можете сделать что-то вроде этого:

$ = function (element){
    return {
        myFunction: function (p1,p2){
            alert(element.id + " " + (p1 + p2));
            //do stuff with element and p1 and p2
        }
    }
}

$(document.getElementById("test")).myFunction(50,80)

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

Вот jsfiddle с этим в действии!http://jsfiddle.net/vnbQU/

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