【问题求助】JavaScript 命名空间(NameSpace)重复声明错误

我在文档加载完成后,用 jQuery 的 getScript 动态加载一个脚本。脚本里有这两行代码:

const myNameSpace = {};

function myNameSpace.test() {
}

但是报错了:

SyntaxError: Unexpected function name

我在项目别处也用过 NameSpace 的写法,没遇到这个错误,大佬们这是为什么?

你这个错误就是因为你忘了用 var 声明变量。JavaScript 里声明变量一定要用 var,不然就会报错。

你改成这样就好了:

var myNameSpace = {};

function myNameSpace.test() {
}

一定要用 var,别用 constlet

varconst 跟函数名没关系,函数声明语法不允许用带点的名字啊

你这样写报错是因为函数声明时不能用带点的名字,函数名必须是单一标识符

正确写法有两种:

// 写成赋值函数表达式
myNameSpace.test = function() { };

或者直接把函数写进对象里:

const myNameSpace = {
    test() { }
};

这样就不会报错了

没错

同意 ~ function myNameSpace.test() 根本语法不对,哪怕换成 var 也不行

你说的没错,是这个的问题。我搞错了 :face_with_crossed_out_eyes:

吃个饭回来就被大佬解决了,谢谢谢谢 :saluting_face: