5.2JavaScript对象的创建

<head>
        <meta charset="utf-8">
        <title>对象</title>
    </head>
    <script>
        /*
        在JavaScript中,对象属于复杂数据类型,它是由属性和方法组成的一个集合,属性是指对象的特征,方法是指对象的行为。
        在代码中,属性可以看成对象中保存的数据,方法可以看成对象中保存的函数。
        对象的属性和方法统称为对象的成员
        */
       
       /*
       5.2 对象的创建
       创建对象有三种常用方式
       1.利用字面量创建对象
       2.利用构造函数创建对象
       3.利用Object()创建对象
       */

    </script>
    <script>
        /*
        5.2.1利用字面量创建对象
        利用字面量创建对象就是用大括号"{}"来标注对象成员,每个对象成员使用键值对的形式保存,即"key:value"的形式
        对象字面量语法格式如下:
        {key1:value1,key2:value2,...}   key1和key2表示对象成员的名称,value1和value2表示对象成员的值,多个对象成员之间用","隔开
        当对象不需要成员时,键值对可以省略,此时表示空对象
        */
       var obj = {}; //创建一个空对象
       //创建一个学生对象
       var stu1 = {
           name : '小明',   //name属性
           age : 18,      //age属性
           sex : '男',   //sex属性
           sayHello : function(){   //sayHello()方法
               console.log('hello,i\'m 小明');
           }
       }
       
       /*
       使用对象成员有两种方式
       1.使用"."
       2.使用"[]"
       */
      //第一种方式
      console.log(stu1.name); //访问对象的属性
      stu1.sayHello();  //调用对象的方法
      //第二种方式
      console.log(stu1['age']);  //访问对象的属性
      stu1['sayHello']();  //调用对象的方法
      
      /*
      若对象成员名包含特殊字符,则可以用字符串来表示成员名,通过"[]"来访问
      */
     var stu2 = {
         'name_age' : '小黑-18'
     };
     console.log(stu2['name_age']);
     
     //用户创建完成后,用户可以通过为属性或方法赋值的方式来添加对象成员
     //以下是示例代码:
     var obj = {};
     obj.name = 'nigger';   //为对象添加name属性 (演示"."语法)
     obj['age'] = 99;  //为对象添加age属性(演示"[]"语法)
     obj.sayHello = function(){  //为对象添加sayHello()方法(演示"."语法)
         console.log('hello,我是nigger');
     };
     obj['sing'] = function(){    //为对象添加sing()方法(演示"[]"语法)
        console.log('hello,我会唱跳rap篮球'); 
     };
     console.log(obj.name); //访问name属性
     console.log(obj.age); //访问age属性
     obj.sayHello();  //调用sayHello()方法
     obj['sing']();  //调用sing()方法
     
     //若访问对象中不存在的成员,则返回undefined
     var obj2 = {};  //创建一个空对象
     console.log(obj2.name);  //输出undefined
    </script>
    
    
    <script>
        /*
        5.2.2 利用构造函数创建对象
        所谓构造函数,就是一个提供生成对象的模板并描述对象基本结构的函数
        主要用来在创建对象时初始化对象,即为对象的成员赋初始值。
        通过一个构造函数可以创建多个对象,这些对象都有相同的结构。利用构造函数创建对象的过程称为实例化,利用构造函数创建出来的对象称为构造函数的实例对象
        构造函数的名称推荐首字母大写
        定义构造函数的语法格式如下:
        function 构造函数名 ([参数1,参数2,...]){
            函数体
        }     //构造函数的参数可以有一个或多个,也可省略
        在构造函数的函数体可以为新创建的对象添加成员,其语法格式如下:
        this.属性=值;
        this.方法 = function([参数1,参数2,...]){
            方法体
        }     //this表示新创建的出来的对象
        
        定义构造函数后,使用构造函数创建对象的语法格式如下:
        var 变量名 = new 构造函数名([参数1,参数2,...]);   //参数可以有多个,当不需要传入参数时,参数可以省略且小括号也可以省略
        */
       //定义一个student()构造函数
       function Student(name,age){
           this.name = name;
           this.age = age;
           this.introduce = function () {
               console.log('hello,我是构造函数对象'+this.name);
           }
       }
       //使用Student()构造函数创建对象
       var stu1 = new Student('小黑',18);
       stu1.introduce();
       var stu2 = new Student('小白',17);
       stu2.introduce();
    </script>
    
    <script>
        /*
        静态成员和实例成员
        JavaScript中,构造函数本身也是对象,所以构造函数也有成员
        为了区分构造函数的成员和实例对象的成员,构造函数的成员称为静态成员,实例对象的成员称为实例成员
        以下是代码演示
        */
       function Person (name){
         //添加实例成员
           this.name = name;   //实例成员
           this.say = function (){     //实例成员
               console.log('Hello');
           }
       }; 
       //添加静态成员
       Person.class = '102班';   //静态成员
       Person.run = function(){  //静态成员
           console.log('run');
       }
       //使用静态成员
       console.log(Person.class);
       Person.run();
       //使用实例成员
       var p1 = new Person('nerg');
       console.log(p1.name);
       p1.say();
    </script>
    
    
    <script>
        /*
        5.2.3 利用Object()创建对象
        数组有构造函数Array()是JavaScript的一个内置构造函数
        对象也有构造函数 , 对象的构造函数为Object()
        利用Object()构造函数创建obj对象 示例代码如下:
        
        */
       var obj = new Object();
       obj.name = '坤坤';
       obj.sayHello = function (name){
           console.log('hello,我的名字是'+name);
       }
       obj.sayHello(obj.name);
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值