小编Rvy*_*dey的帖子

为什么 JavaScript 的构造函数中需要“this”关键字?

我正在尝试使用 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

javascript scope function object this

1
推荐指数
1
解决办法
2266
查看次数

标签 统计

function ×1

javascript ×1

object ×1

scope ×1

this ×1