Javascript无法识别的语法
Javascript Unrecognized Syntax
我不明白最后一行代码在做什么。它看起来像是标记在函数末尾的随机括号。我不懂语法。
(function (self, $, undefined) {
self.methodName = function () {
//do stuff
}
})(This.IsTheNameOf.MyJsFile, Jquery);
我所知道的:self-命名空间组织工具。$=JQuery。最后一行代码中的第一个内容是包含此代码的JS文件的名称。最后一行显然不是函数调用,但它似乎与self和$一致。
任何知识都将不胜感激!
去掉一些东西,我们有
function (self, $, undefined) {
// ...
}
所以,基本上是一个函数(尽管缺少一个名称)。现在这个包裹在中
(/* above code here */)(...);
这就是所谓的IIFE(立即调用函数表达式)。换句话说:函数被创建并立即调用。这样做的原因是它创建了一个范围,您可以在其中拥有"私有"变量。此外,为了便于参考,jQuery
在该范围内被别名为$
。类似地,This.IsTheNameOf.MyJsFile
被混叠为self
。
如果仔细观察,该函数需要三个参数,但只使用两个参数进行调用。这将强制最后一个参数为(本机)undefined
,它恰好是IIFE中该参数的名称。这样可以确保undefined
在该范围内具有预期的值(允许旧的浏览器覆盖它)。
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jquery 1.8.0语法错误,无法识别的表达式:>
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- 错误:错误:语法错误,无法识别的表达式:
- 属性选择器不起作用(语法错误、无法识别的表达式)
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- jQuery:语法错误,无法识别的表达式:.Marketing&通讯
- 未捕获错误:语法错误,无法识别的表达式:ajaxsample/update_agenda(CodeIgniter)
- Meteor.js中的模板语法无法识别
- Javascript无法识别的语法
- Jquery语法错误,id选择器上的表达式无法识别
- 文本处理-识别代码语法
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- Javascript:语法错误,无法识别的表达式:
- 语法错误,无法识别的表达式:选项 [值 = 属性名称]
- 如何在jQuery中修复此错误未捕获异常:语法错误,无法识别的表达式:语法错误,无法识别的表达式:标签
- 未捕获的错误:语法错误,无法识别的表达式:输入:复选框[名称=ninja_forms_field_57[术语]]
- 未捕获的错误:语法错误,无法识别的表达式:“.b-brand-box”
- Javascript语法识别