是init.apply和方法[method]。默认情况下,应用javascript行是
我试图学习jquery插件,在这个过程中,我试图首先理解一些jquery插件。我读过一些插件,在插件的开头我遇到了一些常见的代码微调是init.apply和方法[method]。默认情况下,应用javascript行是,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我试图学习jquery插件,在这个过程中,我试图首先理解一些jquery插件。我读过一些插件,在插件的开头我遇到了一些常见的代码微调 if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof method === 'object' || !method) { return methods.init
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.jModalbox');
}
谁能告诉我
methods.init.apply(这是参数)代码>
为什么不这样:methods.init(参数)代码>
这很难解释,但我会尽力的 正如您所知道的那样,
apply
method接受2个参数。首先是函数的上下文,其次是函数参数数组
上下文
类似于对象自身的引用,我们可以称之为函数范围
。请参阅函数中的此
显示的这段代码必须使用apply方法,因为它们要设置被调用函数的上下文。我确信调用的函数是用来this
做一些事情的
如果您直接调用函数,它将不会引用您想要的此
。这就是为什么他们必须使用apply而不是直接调用
希望这有帮助
有关更多信息,请阅读