是 init.apply 和 methods[method].apply javascript 行是默认的
Is the init.apply and methods[method].apply javascript lines are by default
我正在尝试学习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.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.jModalbox');
}
谁能告诉我,
- 是不是像,我们在构建插件时必须遵循这个
我观察到控制台不会来
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
那么为什么我们需要 if 部分。
- 为什么使用 Apply 调用方法 init,我的意思是 为什么像 :
methods.init.apply(this, arguments);
为什么不喜欢这样:methods.init(arguments);
- 我遇到过阅读这个 apply() ,但不清楚。 请任何机构解释
这很难解释,但我会尽力而为。
如您所知apply
该方法需要 2 个参数。 首先,context of function
,第二,array of function parameters
context
就像一个对象自我的引用,我们可以称之为function scope
。它指的是功能中的this
。
您显示的此代码必须使用 apply 方法,因为他们想要设置被调用函数context
。我真的很确定调用的函数this
用于做某事。
如果您直接调用函数,它将没有对您想要this
的引用。这就是为什么他们必须使用apply而不是直接调用的原因。
希望这有帮助!
有关更多信息,您可以阅读此内容
相关文章:
- Javascript:如何获取函数.apply()的键
- How to apply javascript on <asp:Buttonfield>?
- 类型错误:无法读取未定义的属性“apply”,在测试中使用 javascript apply
- Javascript:在对象实例方法上使用apply()方法失败
- function.apply如何在javascript中工作
- Firefox-Javascript-window.event无法存活传递到context.apply()
- ECMAScript 5之前的Javascript-bind()/如何使用apply()或call()进行模拟
- javascript Onclick apply tag
- javascript document.write css doesn't apply
- 了解 Javascript 中 .call 和 .apply 的行为
- 如何在 JavaScript 中使用 apply()
- apply() 的这种用法在 Javascript 中是什么意思
- 是 init.apply 和 methods[method].apply javascript 行是默认的
- Weird Javascript Array.prototype.constructor.apply behaviour
- 了解 knockout 如何通过 push.apply 与 javascript 对象交互
- JavaScript call() 和 apply() 通过实现的区别
- TYPO3 Neos:Apply content属性在JavaScript中运行时出错
- 在JavaScript中,您可以将apply与Args一起使用吗
- Javascript:我应该什么时候使用function_name.apply
- 在apply(Javascript)的重新声明中调用Function.prototype.apply