作为所有元素的方法

时间:2011-11-09 00:01:22

标签: javascript oop

我想创建一个函数,它将作为所有元素(如JQuery方法)的方法。例如:

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

我认为不允许使用Object.prototype。 任何的想法 ??我是javascript中的OOP新手。 THX

2 个答案:

答案 0 :(得分:3)

myFunction.call(element, p1, p2);

myFunction(p1, p2)与[{1}}绑定this,类似element myFunction element.prototype并通过element.myFunction(p1, p2)调用。< / p>

答案 1 :(得分:1)

您可以这样做:

$ = 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/