function Person(name,age){
this.name=name;
this.age=age;
}
var person1 = new Person("name1",4)
var person2 = new Person("name2",6)
function Animal(name,size){
this.name=name;
this.size=size;
}
var animal1=new Animal("name1","small")
var animal2 = new Animal("name2","big")
Person.prototype.sayName=function(){
console.log("Hello "+[name])
}
Animal.prototype.sayName=function(){
console.log("Hello "+[name])
}
animal1.sayName();
我刚刚学习了Javascript,我开始玩一些代码。当我运行此代码时,控制台打印出undefined。我相信控制台应该打印:“Hello animal1”。这有什么问题?
答案 0 :(得分:0)
您必须指定this
关键字才能引用当前实例。
Animal.prototype.sayName = function(){
console.log("Hello "+ this.name)
}
答案 1 :(得分:0)
console.log("Hello " + [name])
应为console.log("Hello " + this.name)
我在我的控制台中尝试了它,现在输出Hello name1
。
答案 2 :(得分:0)
在javascript中,当你说 new 时,首先会发生一个空对象。在创建该对象时,执行动物函数,并且当前执行上下文将引用新创建的空对象。因此,当您说this.name = name和this.size = size时, this 关键字将引用新创建的对象。因此,您需要始终使用此引用该属性,同时访问该属性,如下面的代码段所示:
function Animal(name,size){
this.name=name;
this.size=size;
}
var animal1=new Animal("name1","small")
Animal.prototype.sayName=function(){
console.log("Hello "+this.name)
}
animal1.sayName();
希望这能回答你的问题