我想知道是否有人可以提供帮助
我有一个带有以下代码的jQuery插件:
....
$.Autocompleter.Select = function (options, input, select, config) {
var list;
....
return {
emptyList: function (){
list && list.empty();
}
}
}
我想覆盖emptyList函数;并编写了以下代码:
originalAutoCompleteSelectFunction = $.Autocompleter.Select;
$.Autocompleter.Select = function (options, input, select, config) {
var ret = originalAutoCompleteSelectFunction.apply(this, arguments);
ret.emptyList = function() {
console.log ("hello");
console.log ("The list=" + list);
};
return ret;
};
这有点奏效,但是:
所以,2个问题。我是否正确编写了代码以真正覆盖现有函数?而且,是否可以访问变量'list'?我知道它是封闭的私有成员,但是如果你不能以这种方式访问私有成员,那么大概它会使覆盖函数(使用那些私有成员)的能力毫无意义吗?
或者我错过了什么?
我已经看过Extending an existing jQuery function,它让我了解如何以这种方式覆盖函数;而且这个Access private members of jQuery plugin表明无法访问闭包的私有成员。
干杯
森