【发布时间】:2012-01-23 03:43:56
【问题描述】:
我想将当前调用的对象及其当前设置的参数传递给闭包函数。我一般不知道怎么做,但是我认为 jQuery 又增加了一层混乱,因为 this 指的是一个元素。
例子:
jQuery 插件
(function( $ ){
$.fn.addContentType = function(obj) {
var name = "this is just an example";
obj.func.call(this); //<--I want to pass this object, not the jQuery selector
};
})( jQuery );
调用插件
jQuery("#someelement").addContentType({
func:function(){
console.log(this.name); //<--Expect "this is just an example"
}
});
任何想法如何做到这一点?
这只是一个例子,并没有做任何事情,我只是想展示我所追求的。如果我缺少详细信息,请告诉我。
【问题讨论】:
-
无法获取局部变量。
-
name只是addContentType中的一个局部变量。另一方面,this指的是jQuery("#someelement")选择的所有元素。因此,this.name与jQuery("#someelement").name相同。 -
@Felix:正确。我一开始就提到了。我在问是否有办法传递一个引用对象本身的“this”
-
你指的是哪个对象?选定的元素?还是 jQuery 对象?如果选择了多个元素怎么办?
标签: javascript jquery object closures