js基础---构造函数理解

目录

 

1.为什么要用构造函数创建对象?

2.怎么样创建?

3.构造函数与对象的区别?


1.为什么要用构造函数创建对象?

因为我们使用字面量和使用new Object()创建对象时,一次只能创建一个对象。当我们需要创建多个相同对象时,只能进行复制,而且很多属性和方法都是相同的。现在我们可以利用函数的方法,把对象封装进函数,我们称这种函数为构造函数。

构造函数就是把对象里面相同的公共属性和方法抽象出来封装到函数里。

2.怎么样创建?

属性和方法前面一定要加this,创建的是哪个对象,this就指向哪个对象,这样创建多个对象时,指向不会乱。

  //构造函数首字母大写
    function Star(name,age,sex) {
        this.name=name;
        this.age=age;
        this.sex=sex;
        //不需要return
        this.play=function(play){
            console.log(play);
         }
    }
    // new 构造函数名();  调用函数 返回的是一个对象
   var jinjing= new Star("金靖",18,"female");//Star {name: "金靖", age: 18, sex: "female"}
   var xiaozhan= new Star("肖战",20,"male");//Star {name: "肖战", age: 20, sex: "male"}
     jinjing.play("hahaha");
     xiaozhan.play("hohoho");
    console.log(typeof jinjing);//object
    console.log(xiaozhan.age);//20

练习:利用构造函数创建两个英雄对象。函数中的公共部分包括:姓名属性(name),类型属性(type),血量属性(blood)和攻击方式(attack)。 英雄对象的信息如下 :    廉颇   坦克    500血量    攻击 :近战  后羿   射手    100血量    攻击: 远程

                                                                 

 

function hero(name, type, blood) {
     this.name = name;
     this.type = type;
     this.blood = blood;
     this.play= function(play) {
           console.log(play);
    }
}
var lianpo = new hero('廉颇', '坦克',500);
var houyi= new hero('后裔', '射手',100);
lianpo.play("近战");
houyi.play("远战");

执行结果:

3.构造函数与对象的区别?

构造函数:这里是明星。相当于java里的类(class),是泛指。

对象:这里是某个确定的明星(金靖),是对象实例化后的一个实例。指某一个具体的事物,是特指。

金靖== {name: "金靖", age: 18, sex: "female", sing: ƒ}

利用构造函数创建对象的过程就是对象的实例化。

//构造函数首字母大写
    function Star(name,age,sex) {
        this.name=name;
        this.age=age;
        this.sex=sex;
        //不需要return
        this.play=function(play){
            console.log(play);
        }
    }
   var jinjing= new Star("金靖",18,"female");//Star {name: "金靖", age: 18, sex: "female"}
   var xiaozhan= new Star("肖战",20,"male");//Star {name: "肖战", age: 20, sex: "male"}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值