【发布时间】:2019-09-05 05:34:37
【问题描述】:
我正在尝试使用 JavaScript 中的 new 关键字来实例化构造函数。但是,它没有按预期工作 -
var a = function () {
abc = function () {
return "abc";
}
}
var obj = new a();
如果我这样做-
obj.a(); 。它说-
Uncaught TypeError: obj.abc is not a function
但如果我只是在没有对象 obj 的情况下访问它,它就可以工作
abc();
但是如果我使用this 作为内部函数,整个问题就解决了-
var a = function () {
this.abc = function () {
return "abc";
}
}
所以我的问题是,如果我声明 abc() 没有 'this' 关键字,它的作用域不是在 a 函数内。为什么当它在函数 a 中声明时被视为全局函数?
【问题讨论】:
-
当您执行
obj.a()时,它会显示 “obj.abc 不是函数”?!请在此处仔细检查您的姓名。 -
已编辑。这是错字
标签: javascript function object scope this