我正在尝试使用 JavaScript 中的 new 关键字实例化构造函数。然而,它并没有按预期工作——
var a = function () {
abc = function () {
return "abc";
}
}
var obj = new a();
Run Code Online (Sandbox Code Playgroud)
如果我做 -
obj.a();。它说 -
Uncaught TypeError: obj.abc is not a function
Run Code Online (Sandbox Code Playgroud)
但如果我只是在没有对象的情况下访问它obj,它就可以工作
abc();
Run Code Online (Sandbox Code Playgroud)
this但如果我使用内部函数,整个问题就解决了-
var a = function () {
this.abc = function () {
return "abc";
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如果我声明时abc()没有“this”关键字,那么它的作用域不在函数内a。为什么在函数内部声明它时会被视为全局函数a?