10.使用prototype属性来减少重复的代码

说明

由于numLegs对于Bird的所有实例可能具有相同的值,因此在每个Bird实例中基本上都有一个重复的变量numLegs

在只有两个实例时,这可能不是问题。但想象如果有数百万个实例,那将是很多重复的变量。

一个更好的方法是使用Birdprototypeprototype 是在Bird的所有实例之间共享的对象。以下是将numLegs添加到Birdprototype的方法:

Bird.prototype.numLegs = 2;

现在,所有Bird的实例都有numLegs属性。

console.log(duck.numLegs); // prints 2
console.log(canary.numLegs); // prints 2

由于所有实例都自动在prototype上有属性,因此将prototype视为创建对象的“配方”。

请注意,duckcanaryprototypeBird构造函数的一部分,例如Bird.prototype。 JavaScript中几乎每个对象都有一个prototype 属性,它是创建它的构造函数的一部分。


练习

numLegs属性添加到Dogprototype

  • beagle应该有一个numLegs属性。
  • beagle.numLegs应该是一个数字。
  • numLegs应该是一个prototype属性不是own的属性。

答案

方法 描述
this 当前执行代码的环境对象
new 创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
let 声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
prototype 向对象添加属性和方法。
console.log() 用于在控制台输出信息(浏览器按下 F12 打开控制台)。
function Dog(name){
  this.name=name;
}
let beagle=new Dog;
Dog.prototype.numLegs = 4;
console.log(beagle.numLegs);

运行结果

在线测试

发布了56 篇原创文章 · 获赞 1 · 访问量 819

猜你喜欢

转载自blog.csdn.net/weixin_44790207/article/details/105034076
10.