前言
在一个遥远的代码王国里,国王想要为自己的生日派对组建一个特别的合唱团。他下令说:“我要一个由1000只鸭子组成的合唱团,它们必须能够完美地‘嘎嘎嘎’地叫!”
于是,王国的程序员们忙碌起来,他们是否能完成国王的任务呢?我们往下看...
正文
对象的创建和使用:
首先他们创建一个可以容纳合唱团成员的数组,并定义了一个鸭子对象,它具有发出叫声的能力。
const choir = []; // 合唱团 数组也是对象
// 对象字面量
const duck = {
duckSign: function() {
console.log('嘎嘎嘎');
}
}
在这段代码中,首先定义了一个名为choir的常量,并将其初始化为一个空数组。在JavaScript中,数组是一种特殊类型的对象,用于存储有序的数据集合。这里的choir数组被用作存储合唱团成员的容器。
后面又定义了一个名为duck的常量,这是一个对象字面量。在这个对象中,有一个名为duckSign的方法。当这个方法被调用时,它会在控制台上打印出“嘎嘎嘎”,模拟鸭子的叫声。
函数的定义和调用:
在创建了可以容纳合唱团成员的数组后,程序员们开始招募鸭子了
function joinChoir(animal) {
// 严谨性 加入合唱团的要求
if (animal && typeof animal.duckSign == 'function') {
choir.push(duck);
}
console.log('恭喜加入合唱团')
}
这段代码定义了一个名为joinChoir的函数,它的作用是将符合条件的动物加入到choir合唱团数组中。让我们逐步分析这个函数和随后的代码:后面运用一个个条件语句,它检查传入的animal是否存在,并且是否有一个名为duckSign的方法。这是加入合唱团的要求,确保每个成员都能发出“嘎嘎嘎”的声音。
循环:
for (let i = 0; i < 1000; i++) {
joinChoir(duck)
}
console.log('合唱团已有' + choir.length + '位成员');
if (choir.length === 1000) {
console.log('报告国王, 合唱团招聘完成');
}
这是一个for循环,它调用joinChoir函数1000次,意图是将1000只鸭子加入合唱团
console.log('合唱团已有' + choir.length + '位成员');
不管animal是否被添加到合唱团中,这条消息都会被打印出来。这可能不是预期的行为,因为消息应该只在动物成功加入合唱团时打印。
如果只有999只 duck?
const chicken = {
duckSign: function () {
console.log('嘎嘎嘎');
}
}
console.log('合唱团已有' + choir.length + '位成员');
joinChoir(chicken);
if (choir.length === 1000) {
console.log('报告国王, 合唱团招聘完成');
}
我们只需再找到一只能嘎嘎嘎的chicken就行了,这时合唱团同样顺利完成招募了。
结尾
-
js没有数组类型
-
JS里不是传统的面向对象( class Duck) 是基于原型式的面向对象()