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")

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值