在JavaScript中使用关键字this vs NOT

时间:2015-12-11 10:09:31

标签: javascript object constructor scope this

所以我遇到了一个非常奇怪的行为,我似乎无法找到答案。

我了解this方法中this.score.push(newscore)中关键字addScore的使用方式; this指的是创建的特定对象。在这种情况下,this指的是存储在变量billy中的学生对象。

但是,我们要删除this,以便addScore方法读取score.push(newscore)。好的,我知道这也可以,因为score现在指的是新学生对象创建的初始输入:[80,90,100]score的范围也应允许这样做。

真正令我难以置信的是,当我致电billy.score查看他的分数时,addScore方法添加的新分数就在那里,保存并存储!如果score仅指输入,那么世界上如何存储新分数?不应该将新分数存储在score数组中,因为它已添加到输入而不是对象的属性,即。 this.score

非常感谢您提前阅读,我希望与大家讨论这个问题!

function Student(name, score){
  this.name = name;
  this.score = score;
  this.addScore = function(newscore){
    this.score.push(newscore) // vs score.push(newscore)
  }
}

var billy = new Student("Billy", [80,90,100]);

0 个答案:

没有答案