Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS原型继承_Javascript_Inheritance - Fatal编程技术网

Javascript JS原型继承

Javascript JS原型继承,javascript,inheritance,Javascript,Inheritance,实际代码 功能动物(名称){ this.name=名称; } 功能兔(速度){ 动物。称(这是“兔子”); 速度=速度; } 兔子。原型=动物; 变异兔=新兔(50); console.log(rabbit.name,rabbit.speed)使用,您应该得到如下结果: 功能动物(名称){ this.name=name } 功能兔(速度){ 动物。叫(这个“兔子”) 这就是速度 } Rabbit.prototype=Object.create(Animal.prototype) //如果不设

实际代码

功能动物(名称){
this.name=名称;
}
功能兔(速度){
动物。称(这是“兔子”);
速度=速度;
}
兔子。原型=动物;
变异兔=新兔(50);
console.log(rabbit.name,rabbit.speed)使用,您应该得到如下结果:

功能动物(名称){
this.name=name
}
功能兔(速度){
动物。叫(这个“兔子”)
这就是速度
}
Rabbit.prototype=Object.create(Animal.prototype)
//如果不设置这一行,`newrabbit`将调用`Animal`构造函数
Rabbit.prototype.constructor=Rabbit
var兔=新兔(50)

console.log(rabbit.name,rabbit.speed)
Animal
只是一个函数

“function”对象具有属性“name”

比如说

function app(){
 console.log("hello")
}
console.log(app.name) // "app"


function Animal(name){
 this.name = name;
}
console.log(Animal.name) // "Animal"
所以动物对象有一个属性“name”,函数对象也有一个属性“name”

你可以试试这个

功能动物(名称){
this.notname=name;//不要将“name”用作属性名
}
功能兔(速度){
动物。称(这是“兔子”);
速度=速度;
}
兔子。原型=动物;
变异兔=新兔(50);
log(rabbit.notname,rabbit.speed);

功能动物(名称){
this.name=名称;
}
功能兔(速度){
动物。称(这是“兔子”);
速度=速度;
}
Rabbit.prototype=新动物();
//您应该将Rabbit.prototype指向动物对象,而不是函数
变异兔=新兔(50);
console.log(rabbit.name,rabbit.speed);

你从哪里得到这个
Rabbit.prototype=Animal零件来源?它应该是
Rabbit.prototype=Object.create(Animal.prototype)
我刚刚玩了代码并尝试了这个任务。另外,我在chrome中调试了这个,首先是Rabbit调用,然后是Animal函数,它已经将'name'指定为'Animal',但是如果我没有为Rabbit设置原型的话,'undefined'。这就是我所问的令人困惑的问题。