不二如是 发表于 2017-8-9 06:30:41

技法66 (◐‿◑) 扩展构造函数以接收参数

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

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

不许看答案,否则打屁屁



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

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

可以手动更改每只鸟的属性,但这将是有很多步骤:
let 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构造函数中的每个唯一的鸟类。
let cardinal = new Bird("Bruce","red");

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

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

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

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





I Need U:

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

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

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

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

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

Dog 属性 numLegs 应该设置成 4.

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

   



答案:
**** Hidden Message *****



回顾:

技法65 (◐‿◑) 使用构造函数创建对象



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

Ruide 发表于 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");

向一朵朵鲜花 发表于 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);

a211827754 发表于 2018-9-26 10:15:02

em

wangdxf 发表于 2019-4-9 10:33:41

{:5_102:}

jack6666 发表于 2022-10-28 23:35:26

1
页: [1]
查看完整版本: 技法66 (◐‿◑) 扩展构造函数以接收参数