使用jQuery getScript加载脚本时出现JavaScript NameSpace已声明错误
问题解决:getScript加载脚本时的语法错误
我在文档就绪后使用jQuery的getScript函数加载脚本,脚本内容如下:
const myNameSpace={}; function myNameSpace.test() { }
此时出现**Uncaught SyntaxError: Unexpected token '.'**语法错误,但项目其他位置用同样方式使用命名空间却没报错。
错误原因
function myNameSpace.test()是无效的JavaScript语法——函数声明的标识符不能包含.,这种写法不符合函数声明的语法规则。虽然myNameSpace是一个对象,但不能用函数声明的方式直接给它添加方法。
解决方案
修改加载脚本的代码,改用对象方法赋值的方式添加方法:
- 方式一:先声明对象再赋值方法
const myNameSpace = {}; myNameSpace.test = function() { // 这里写方法逻辑 };
- 方式二:初始化对象时直接定义方法(更简洁)
const myNameSpace = { test: function() { // 方法逻辑 } }; // 或者用ES6简写语法 const myNameSpace = { test() { // 方法逻辑 } };
为什么其他位置没问题?
大概率是其他位置的命名空间没有用这种错误的函数声明语法,要么是用var声明后通过赋值添加方法,要么是从一开始就用对象字面量定义了方法,避开了语法错误。
内容的提问来源于stack exchange,提问作者Cymro
相关产品推荐
相关产品推荐

