初学者在js方面问题

img


为什么第七行要加一个this.sayname=sayname,但下面还有一个sayname函数,删除第七行后就运行不出结果

这就跟一个函数指针一样,将类中的函数指针指向实际的函数

你的this.sayname指向了sayname函数。假如注释了地七行。你的对象person1的sayName是空的 所有不会出结果。

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

    this.changeName=changeName;
    function changeName(name)
    {
        this.lastname=name;
    }
}

不加 this.sayname=sayname 的 话,Person和sayName就没关系。其实这句话的意思是:

function Person (name,age) {
  this.name = name
this.age = age
function sayName() {
  console.log(this.name)
}
}