【问题标题】:Use of "this" in the following code? [duplicate]在以下代码中使用“this”? [复制]
【发布时间】:2015-09-04 10:14:48
【问题描述】:

我是 JavaScript 的初学者,我不太了解以下脚本中的一些内容;

我知道 Map、Player 和 App 是类,而 map、player 和 app 是这三个类的实例;

但是为什么要在对象地图和播放器中使用关键字“this”而不是直接写 var map = new Map()var player = new Player()

任何帮助将不胜感激!

var app;

var App = function() 
  this.map = new Map();
  this.player = new Player();
};

(function() {
  app = new App();
})();

【问题讨论】:

  • 顺便说一句,Javascript 中没有“类”,只有对象和函数。您可以编写行为类似于具有构造函数和“静态”方法的“类”的代码,但不要开始认为 Javascript 有类。

标签: javascript this


【解决方案1】:
var App = function() 
  var map = new Map(),
      player = new Player();
};

这里的mapplayer 只能作为函数内部的变量使用。在这段特定的代码中,没有任何东西可以访问这些变量,因此它们会在函数结束时立即超出范围并被删除。

var App = function() 
  this.map = new Map();
  this.player = new Player();
};

var app = new App();
app.map.foo();

这里mapplayer 成为App 实例的属性,并且可以在其外部和/或其他函数访问,例如prototypeApp 函数。

【讨论】:

    【解决方案2】:

    这里this 指的是变量app。使用它的好处是您将能够访问app.map()app.player()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 2019-12-31
      相关资源
      最近更新 更多