07.扩展构造函数以接收参数

说明

来自之前挑战里的 Bird 和  Dog 构造函数运行良好。但是,请注意,使用  Bird 构造函数创建的所有  Birds 都自动命名为Albert,颜色为蓝色,并有两条腿。但如果你想要不同的名称和颜色的鸟呢?可以手动更改每只鸟的属性,但这将是有很多步骤:

var swan = new Bird();

swan.name = "Carlos";

swan.color = "white";

假设你正在编写一个程序来跟踪鸟舍中数百甚至数千只不同的鸟类。创建所有鸟类需要很多时间,再就是还要将属性更改为不同的值。

要更轻松地创建不同的  Bird 对象,你可以设计  Bird 构造函数以接受参数:

function Bird(name, color) {
  this.name = name;
  this.color = color;
  this.numLegs = 2;
}

然后将值作为参数传递给  Bird 构造函数中的每个唯一的鸟类。

var cardinal = new Bird("Bruce","red");

这给出了一个新的  Bird 实例,其名称和颜色属性分别设置为  Bruce  和红色。numLegs 属性仍然设置为 2。

cardinal  具有以下属性:

cardinal.name // => Bruce
cardinal.color // => red
cardinal.numLegs // => 2

构造函数更灵活了。现在可以在创建时为每个  Bird 定义属性,这是  JavaScript  构造函数非常有效的一种方式。它们根据共享特征和行为将对象分组在一起,并定义自动创建的蓝图。


练习

创建另一个  Dog 构造函数。这一次,设置参数  name 和  color,并将属性  numLegs 固定为 4。然后创建一个新的 Dog 保存在变量 terrier 中。传递两个字符串作为  name 和  color 属性的参数。

Dog 应接收一个 name 属性的参数.

Dog 应该收一个 color属性的参数.

Dog 属性 numLegs 应该设置成 4.

terrier 应该由 Dog 构造函数构建.

答案

方法 描述
new 创建一个用户定义的对象类型实例或具有构造函数的内置对象实例
let 声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。
thsi 当前执行代码的环境对象
function Dog(name,color) {
    this.name = name;
    this.color = color;
    this.numLegs = 4;
}
let terrier = new Dog("Xiaohei","white")
发布了56 篇原创文章 · 获赞 1 · 访问量 822

猜你喜欢

转载自blog.csdn.net/weixin_44790207/article/details/104984338