在以下函数中,其中包含一个名为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;
第一个
newlastname
是person
对象的属性。第二个
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/