我想创建一个函数,它将作为所有元素(如JQuery方法)的方法。例如:
function myFunction(p1,p2){
//things
}
element.myFunction(p1,p2);
我认为不允许使用Object.prototype。 任何的想法 ??我是javascript中的OOP新手。 THX
答案 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/