Javascript 控制台输出未定义的数据。我的代码有什么问题?

Javascript 控制台输出未定义的数据。我的代码有什么问题?,javascript,Javascript,职能人员(姓名、年龄){ this.name=name; 这个。年龄=年龄; } var person1=新人(“姓名1”,4) var person2=新人(“姓名2”,6) 功能动物(名称、大小){ this.name=name; 这个。大小=大小; } var animal1=新动物(“名称1”,“小型”) var animal2=新动物(“名称2”,“大”) Person.prototype.sayName=函数(){ log(“你好”+[name]) } Animal.prototyp

职能人员(姓名、年龄){
this.name=name;
这个。年龄=年龄;
}
var person1=新人(“姓名1”,4)
var person2=新人(“姓名2”,6)
功能动物(名称、大小){
this.name=name;
这个。大小=大小;
}
var animal1=新动物(“名称1”,“小型”)
var animal2=新动物(“名称2”,“大”)
Person.prototype.sayName=函数(){
log(“你好”+[name])
}
Animal.prototype.sayName=function(){
log(“你好”+[name])
}

动物1.sayName()
必须指定
this
关键字才能引用当前实例

Animal.prototype.sayName = function(){
  console.log("Hello "+ this.name)
}
console.log(“Hello”+[name])
应该是
console.log(“Hello”+this.name)


我在控制台中尝试了它,现在它以javascript输出
Hello name1

,当你说new时,首先会发生的事情是创建一个空对象。创建此对象后,将执行animal函数,当前执行上下文将引用新创建的空对象。因此,当您说this.name=name和this.size=size时,this关键字将引用新创建的对象。因此,在访问该属性时,您需要始终使用this引用该属性,如下面的代码段所示:

功能动物(名称、大小){
this.name=name;
这个。大小=大小;
}
var animal1=新动物(“名称1”,“小型”)
Animal.prototype.sayName=function(){
console.log(“Hello”+this.name)
}

动物1.sayName()你认为
[name]
到底做了什么?