鱼C论坛

 找回密码
 立即注册
查看: 3773|回复: 5

[每日一练] 技法66 (◐‿◑) 扩展构造函数以接收参数

[复制链接]
发表于 2017-8-9 06:30:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

                               
登录/注册后可看大图


按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁





分析:
请注意,使用Bird构造函数创建的所有Birds都自动命名为Albert,颜色为蓝色,并有两条腿。

但如果你想要不同的名称和颜色的鸟呢?

可以手动更改每只鸟的属性,但这将是有很多步骤:
let swan = new Bird(); swan.name = "Carlos"; swan.color = "white";

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

要更轻松地创建不同的Bird对象,你可以设计Bird构造函数以接受参数:
[code]function Bird(name, color) {    
  this.name = name;    
  this.color = color;    
  this.numLegs = 2;    
}

然后将值作为参数传递给Bird构造函数中的每个唯一的鸟类。
let cardinal = new Bird("Bruce","red");

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

cardinal具有以下属性:
cardinal.name // => Bruce
cardinal.color // => red
cardinal.numLegs // => 2

构造函数更灵活了。现在可以在创建时为每个Bird定义属性,这是JavaScript构造函数非常有效的一种方式。

它们根据共享特征和行为将对象分组在一起,并定义自动创建的蓝图。

[/code]





I Need U
创建另一个Dog构造函数。这一次,设置参数name和color,并将属性numLegs固定为4。

然后创建一个新的 Dog保存在变量terrier中。

传递两个字符串作为name和color属性的参数。

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

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

Dog 属性 numLegs 应该设置成 4.

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

   





答案:
游客,如果您要查看本帖隐藏内容请回复





回顾:







如果喜欢,请订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-13 09:52:08 | 显示全部楼层
let Dog = function(name, color, numLegs) {
    this.name = name;
    this.color = color;
    numLegs = 4;
}

let terrier = new Dog("Terrier", "red");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 15:56:28 | 显示全部楼层
  3 function Dog(name,color){
  4         this.name = name;
  5         this.color = color;
  6         this.numLegs = 4;
  7 }
  8 terrier = new Dog("Dog","blue");
  9 alert(terrier.name);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 10:15:02 | 显示全部楼层
em
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 10:33:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-28 23:35:26 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表