欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript-基础:2 基本语法5 对象类型

程序员文章站 2022-07-15 16:58:47
...

1.

对象:
JavaScript-基础:2 基本语法5 对象类型
ps:string是一个特殊的引用类型。

 

2.

创建object对象
JavaScript-基础:2 基本语法5 对象类型

示例代码:
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>object对象</title>
</head>
<body>
    
    <script>
    // 创建对象的两种方式

    // 1. 使用new操作符来创建对象
    var t = new Object(); // 创建了一个object对象。
                          // new:创建一个对象,然后对象执行object函数,最后返回一个对象实例。
    // js是一个动态语言,可以随时添加属性和方法。
    t.age = 19;
    t.name = 'jeck';
    t.run = function(){  // 匿名函数
        console.log("奔跑。。");
    }


    // 对象使用
    // 第一种方式:使用点的方式
    console.log(t.age);
    t.run();
    // 第二种方式:使用中括号的方式
    console.log(t['age']);
    t['run']();

    // 2.对象字面量
    var a = {
        name: 'lili',
        show: 'hello',
        do: function(){
            console.log("hello lili!");
        }
        };

    // 对象使用:
    console.log("使用点的方式:", a.name);
    console.log("使用中括号的方式:", a['show']);
    console.log("使用点的方式");
    a.do();
    console.log("使用中括号的方式");
    a['do']();

    </script>
</body>
</html>

ps:重复定义的属性和方法会被后面的覆盖!

 

3.

3.1对象的动态删除属性(很少用,了解)

delete 对象属性 
JavaScript-基础:2 基本语法5 对象类型(或者 delete t['age'])
ps:只能删除用户自定义的属性

 

3.2通过in运算符检测属性是否属于对象的自定义属性

JavaScript-基础:2 基本语法5 对象类型

 

3.3枚举对象自定义的属性

    var a = {
        name: 'lili',
        show: 'hello',
        do: function(){
            console.log("hello lili!");
        }
        };

    // 对象使用:
    console.log("使用点的方式:", a.name);
    console.log("使用中括号的方式:", a['show']);
    console.log("使用点的方式");
    a.do();
    console.log("使用中括号的方式");
    a['do']();

    // 删除属性
    delete a.name;
    console.log(a);

    // in 检测属性是否属于对象的自定义属性
    console.log('name' in a);

    // 枚举对象的自定义属性
    console.log("枚举对象的自定义属性")
    for (var i in a){
        console.log(i);
        console.log(a[i]); // 这里只能用中括号的方式!
    }

4.对象原型与构造函数

JavaScript-基础:2 基本语法5 对象类型JavaScript-基础:2 基本语法5 对象类型

ps:

  • 变量m可以使用原型里面的属性和方法。
  • Object.prototype 是语言规范里存在的。
  • m.__proto__是浏览器自己实现的(大部分浏览器都实现了,但是自己写代码最好不要用)

object的原型属性和方法(常用的):

  • toString() 转换成字符串
  • toLocalString() 转换成本地化对应的字符串
  • valueOf()  获取它的值
  • hasOwnProperty() 判断属性是否是自己创建添加的。
    JavaScript-基础:2 基本语法5 对象类型

5 示例代码
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>对象练习</title>
</head>
<body>
    <h1>封装猫对象,封装一个数学对象</h1>
    <script>
    //1 封装一个猫对象:
    // 猫拥有:颜色、重量、名字、ID等属性,还拥有跑、跳、叫等行为。
    // var cat = new Object()  //这种方法也可以,不过采用下面的
    var cat = {
        color: 'red',
        weight: 20,
        name: 'lili',
        ID: 1234,
        run: function(){
            // this就相当于cat对象,在对象的方法中使用this代表当前的对象。
            console.log(this.name, '奔跑。');
        },
        jump: function(){
            console.log('jump!');
        }
    };
    cat.run();

    // 输出猫的所有自定义属性
    console.log('输出猫的所有自定义属性:');
    for (var pro in cat){
        console.log(pro);
    }

    //2 封装一个数学对象
    var mymath = {
        PI: 3.1415925,
        sum: function(n){ // 求1到n的和
            var res = 0;
            for(var i = 0; i<=n; i++){
                res += i;
            }
            return res;
        },
        factorial: function(n){
            // 求1到n的阶乘
            var res = 1;
            for(var i = 1; i<=n; i++){
                res *= i;
            }
            return res;
        }
    };

    console.log("mymath pi: ", mymath.PI);
    console.log("mymath sum 100", mymath.sum(100));
    console.log("mymath factorial 10", mymath.factorial(10));
    </script>
</body>
</html>