对象之数组

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            // 创建构造函数
            function Person(name, age){
                this.name = name;
                this.age = age;
            }

            // 调用构造函数
            var per1 = new Person("孙悟空", 18);
            var per2 = new Person("猪八戒", 27);
            var per3 = new Person("红孩儿", 8);
            var per4 = new Person("二郎神", 38);
            var per5 = new Person("哮天犬", 18);

            // 把这些对象,都打包存起来
            var arr = [per1, per2, per3, per4, per5];

            // 找出年龄大于15岁的对象并打包,返回一个整体

            function over_15(arr){

                // 创建一个新的数组对象,来保存返回值
                var over = [];
                for(var index = 0; index < arr.length; index++){
                    if (arr[index].age > 15){
                        over.push(arr[index]);
                    }
                }
                return over;
            }

            // 接收符合要求的对象
            // var receive_over =[];
            var receive_over;
            receive_over = over_15(arr);
            console.log(receive_over);
            console.log(typeof receive_over);
        </script>
    </head>
    <body>
        
    </body>
</html>

1. 掌握数组对象的创建方式

2. 由于数组的值可以是任何的数据类型,我们也可以用数组来保存一个对象(这个对象可以是通过Object来创建的,也可以是构造函数来创建的(为了修改类名,以及向原型对象中添加属性或者是方法,以便于该类对象的实例进行调用)),数组可以将一组数据进行打包存储

在这里插入图片描述

下图中,展示了,Javascript和Java一个很大的不同是,这里可以利用一个普通的变量receive_over来接受一个对象变量

在这里插入图片描述

数组的forEach方法,如果一个对象,不是数组类型的对象的话,是不能调用该方法的,但是该方法在IE8里面不支持

在这里插入图片描述

上面的per1不是数组对象,所有不能调用数组对象的forEach方法

<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 数组的forEach方法

        // 创建构造函数
        function Person(name, age) {
            this.name = name;
            this.age = age;
        }

        // 调用构造函数
        var per1 = new Person("孙悟空", 18);


        // per1.forEach(function(){
        //     console.log("加油!!!");
        //     });


    var arr = ["孙悟空", 18];
    arr.forEach(function(value, index, obj){
        console.log("value =" + value);
        console.log("index =" + index);
        console.log("obj =" + obj);
        console.log(obj == arr);
    });

    </script>
</head>

<body>

</body>

</html>

明确调用函数(传的是一个函数的返回值)和调用函数对象(传的是一个对象)的区别

forEach调用的是一个函数对象,而不是调用的一个函数

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值