"动物合唱团:JavaScript对象和函数的交响曲"

249 阅读2分钟

前言

在一个遥远的代码王国里,国王想要为自己的生日派对组建一个特别的合唱团。他下令说:“我要一个由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) 是基于原型式的面向对象()