JVAVScript之对象

 

 创建对象的三种方式:

1.利用字面量创建对象;

2.利用 new object 创建对象;

3.利用构造函数创建对象;

------利用字面量创建对象

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

  <script>
        var obj = {
            uname:'刘德华',
            age:18,
            sex:'男',
            SayHi:function(){
                console.log('hi~');
            }
        }
    </script>

注:1.里面的属性或者方法我们采取键值对的形式(键  属性名:值 属性值)

        2.多个属性或者方法中间用逗号隔开的

        3.方法冒号后面跟的是一个匿名函数

 使用对象-----法一:调用对象的属性名,我们采取对象名.属性名

                      法二: 对象名【'属性名'】

<script>
        var obj = {
            uname:'刘德华',
            age:18,
            sex:'男',
            SayHi:function(){
                console.log('hi~');
            }
            
        }
        console.log(obj.uname);
        // 法一 
        console.log(obj['age']);
        // 法二
    </script>

调用对象的方法:

 <script>
        var obj = {
            uname:'刘德华',
            age:18,
            sex:'男',
            SayHi:function(){
                console.log('hi~');
            }
            
        }
        console.log(obj.uname);
        // 法一 
        console.log(obj['age']);
        // 法二
        obj.SayHi();
        // 调用对象-----hi~
    </script>

对象名(obj)+方法名

注:千万不能忘记添加小括号

 -----------利用 new Object 创建对象;

<script>
        obj = new Object();
        // 创建一个空的对象
        obj.uname = '郭富城';
        obj.age = 20;
        obj.sex = '男';
        obj.sayHi = function(){
            console.log('hi~');
        }
         console.log(obj.uname);
        //  调用函数
    </script>

注:1.利用等号赋值的方法,添加对象的属性和方法;

        2。每个方法和属性之间用分号;结束。

 -----------利用构造函数创建对象;

前言:前面两种创建对象的方式一次只能创建一个对象,因此会特别繁琐,因此可以利用函数的方法重复这些相同的代码,这个函数成为构造函数

构造函数:把对象里面一些相同的属性和方法抽象出来封装函数里

语法:

function 构造函数名(写参数){
           this.属性 = 值;
           this.方法 = function(){}

        }
        new 构造函数名();

例:

<script>
  function  Star(uname,age,sex){
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function(song){
                console.log(song);
            }
        }
        var ldh = new Star('刘德华',18,'男');//调用函数返回的是一个对象
        var zxc = new Star('周星驰',19,'男');
           ldh.sing('冰雨')
         // 冰雨的值给到song,然后通过console.log输出
        console.log(ldh.name);
        console.log(zxc.name);
    </script>

注: 1.构造函数的函数名首字母为大写

         2.构造函数不需要return就可以返回结果

         3.我们构造函数必须使用new

         4.我们只要 new Star()调用函数就可以创建一个对象ldh{}

         5.我们属性和方法前面必须添加this

案例

 

<script>
     function Hero(name, type, blood){
        this.name = name;
        this.type = type;
        this.blood = blood;
        this.gj= function (attack) {
             console.log(attack);
         }
     }
     var hero1 = new Hero('廉颇','力量型',500);
     var hero2 = new Hero('后羿', '射手型', 100);
     console.log(hero1.name);
     console.log(hero1.type);
     console.log(hero1.blood);
     hero1.gj('近程');
    console.log(hero2.name);
    console.log(hero2.type);
    console.log(hero2.blood);
     hero2.gj('远程');
    
   </script>

遍历对象属性

  <scipt> 
// 对象的遍历
        // for(变量 in 对象){

        // }
        for(var s in ldh){
             console.log(s);
            // 输出得到的是属性名
            console.log(ldh[s]);
            // 输出得到的是属性值
        }
    </script>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值