溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

es6 class使用文檔

發(fā)布時(shí)間:2020-07-10 02:19:42 來源:網(wǎng)絡(luò) 閱讀:205 作者:天師110 欄目:web開發(fā)

//定義了一個(gè)名字為Person的類

constructor方法是類的構(gòu)造函數(shù)的默認(rèn)方法,通過new命令生成對(duì)象實(shí)例時(shí),自動(dòng)調(diào)用該方法。
constructor方法如果沒有顯式定義,會(huì)隱式生成一個(gè)constructor方法。所以即使你沒有添加構(gòu)造函數(shù),構(gòu)造函數(shù)也是存在的。constructor方法默認(rèn)返回實(shí)例對(duì)象this,但是也可以指定constructor方法返回一個(gè)全新的對(duì)象,讓返回的實(shí)例對(duì)象不是該類的實(shí)例。
constructor中定義的屬性可以稱為實(shí)例屬性(即定義在this對(duì)象上),constructor外聲明的屬性都是定義在原型上的,可以稱為原型屬性(即定義在class上)。

class Person{   
            constructor(name,age){      //constructor是一個(gè)構(gòu)造方法,用來接收參數(shù)
                       this.name = name;        //this代表的是實(shí)例對(duì)象
                      this.age=age;
            }
        say(){      //這是一個(gè)類的方法,注意千萬(wàn)不要加上function
            return "我叫" + this.name+"今年"+this.age+"歲了";
    }
}
var obj=new Person("天天",18);
console.log(obj.say());         //我叫天天今年18歲了

修改類方法

Person.prototype.say=function(){        //定義與類中相同名字的方法。成功實(shí)現(xiàn)了覆蓋!
    return "我是來證明的,你叫" + this.name+"今年"+this.age+"歲了";
}
var obj=new Person("天天",38);
console.log(obj.say());         //我是來證明的,你叫天天今年38歲了

新增類方法

Person.prototype.addFn=function(){
    return "我是通過prototype新增加的方法,名字叫addFn";
}
var obj=new Person("天天",48);
console.log(obj.addFn());       //我是通過prototype新增加的方法,名字叫addFn

動(dòng)態(tài)新增多個(gè)類方法

Object.assign(Person.prototype,{
    getName:function(){
         return this.name;
    },
    getAge:function(){
         return this.age;
    }
})
var obj=new Person("天天",58);
console.log(obj.getName());    //laotie
console.log(obj.getAge());     //88
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI