在以下函数中,其中包含一个名为newlastname的方法:

function person(firstname,lastname,age,eyecolor)
{
  this.firstname=firstname;
  this.lastname=lastname;
  this.age=age;
  this.eyecolor=eyecolor;

  this.newlastname=newlastname;
}


function newlastname(new_lastname)
{
  this.lastname=new_lastname;
}


this.newlastname=newlastname;行中发生了什么?第一个newlastname指的是什么?我感谢任何提示或建议。

最佳答案

在这行代码中:

this.newlastname=newlastname;


第一个newlastnameperson对象的属性。

第二个newlastname是对newlastname()函数的引用。

因此,当您这样做时:

this.newlastname=newlastname;


您将在person对象的属性中存储对该函数的引用。这将使以下代码起作用:

var p = new person("Ted", "Smith", 31, "blonde");
p.newlastname("Bundy");


当您执行p.newlastname("Bundy");时,它将在person对象上寻找一个名为newlastname的属性。找到该属性后,它将执行该函数并将其传递给"Bundy"并将this设置为特定的person对象。

关于javascript - 有关在JavaScript中向对象添加方法的说明?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9958494/

10-11 11:50