javascript对象


prtyaa
prtyaa 2023-12-26 18:06:29 63562
分类专栏: 资讯

1 什么是对象

图1

2 为什么需要对象

面相对象编程是一种思想,js实现了这种思想

3 创建对象

  • 利用字面量创建对象
  • 利用构造函数创建对象
  • 利用new Object创建对象

3.1 使用字面量创建对象

对象字面量: 就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。

代码样例:

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

<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>
        //1利用字面量创建对象{}
        // var obj = {}; //创建了一个空对象
        var obj = {
            uname: 'zhangsan',
            age: 18,
            sex: '男',
            sayHi: function () {
                console.log('Hello');
            }
        }
        //(1)里面的属性或者方法我们采取键值对的形式 (键)属性名: (值)属性值
        // (2) 多个属性或者方法中间用逗号隔开的
        // (3) 方法冒号后面跟的是一个匿名函数

        //2使用对象
        console.log(obj.uname);
        console.log(obj['sex']);
        obj.sayHi();
        // (1) 调用对象的属性我们采取:      对象名.属性名
        // (2) 调用对象的属性还有一种方法:  对象名['属性名']
        // (3) 调用对象的方法:              对象名.方法名()

    </script>
</head>

<body>
</body>

</html>

3.2 使用构造函数创建对象

个人理解:new关键字可以结合函数创建对象,主要是new关键字起到的作用,所以函数需要满足new关键字的要求,这个结合new关键字的函数我们称为构造函数。

new关键字的工作步骤及原理:

  1. new关键字将构造函数类比于java中的类(Class)
  2. new 构造函数()可以在内存中创建了一个空的对象
  3. this就会执行刚才创建的空对象
  4. 执行构造函数里面的代码,给这个空对象添加属性和方法(这也就是为什么构造函数里需要写this的原理)
  5. 返回这个实例化对象(所以构造函数中不需要return)

语法格式:

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

<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 构造函数名() {
            this.属性名 = 值;
            this.方法名 = function () {
                console.log('Hello');
            }
        }
        //实例化对象
        new 构造函数名();

    </script>
</head>

<body>
</body>

</html>

代码样例

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

<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 Star(uname, age, sex) {
            this.uname = uname;
            this.age = age;
            this.sex = sex;
            this.sayHi = function (sing) {
                console.log(sing);
            }
        }
        var pepole = new Star('zhangsan', 18, '男');
        console.log(pepole.uname);
        console.log(pepole['sex']);
        pepole.sayHi('welcome!');

    </script>
</head>

<body>
</body>

</html>

构造函数书写注意内容

构造函数名字首字母要大写

构造函数不需要return

3.3 使用new Object创建对象

代码样例:

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

<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>
        // 利用new Object创建对象
        var obj = new Object(); // 创建了一个空的对象
        obj.uname = 'zhangsan'; // 追加属性
        obj.sex = '男';
        obj.sayHi = function () { //追加方法
            console.log('Hi');
        }
        // 使用对象
        console.log(obj.uname);
        console.log(obj['sex']);
        obj.sayHi();
    </script>
</head>

<body>
</body>

</html>

4 遍历对象

for...in语句用于对数组或者对象的属性进行循环操作。

代码样例:

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

<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>
        // 对象遍历
        var obj = {
            name: 'zhangsan',
            age: 18,
            sex: '男',
            fn: function () {
                console.log('Hello');
            }
        }

        for (k in obj) {
            console.log(k);
            console.log(obj[k]);
        }
    </script>
</head>

<body>
</body>

</html>

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=30975
赞同 0
评论 0 条