es6 新增的資料型別 class

2021-08-27 21:19:25 字數 2356 閱讀 9791

father.prototype.

say1

=function()

`);}

function

son(name1, name2)

son.prototype = father.prototype

son.prototype.

say2

=function()

's father is $`

);}let son =

newson

('bob'

,'lucy'

) son.

say1()

// i am bob

son.

say2()

// lucy's father is bob

}

print()

}let person=

newperson2

('bob',20

);console.

log(person)

;//person

person.

print()

;//my name is bob, 20 years old.

}// 變數接受 class

print()

}let person=

newperson3

('bob',20

);console.

log(person)

;//person

person.

print()

;//my name is bob, 20 years old.

}// 立即執行的 class

dosomething

(something)今年$

歲了,愛好

$,現在要去$`

)}}(

) dog5.

dosomething

('打遊戲'

)// miss今年20歲了,愛好主播,現在要去打遊戲

}// getter setter 攔截

getprop()

setprop

(val)

}let list =

newdog6

('hello'

) list.prop =

'world'

// setter world

console.

log(list.prop)

// getter world / world

}// static 靜態方法和屬性:不會繼承,而是通過類直接呼叫

} dog7.do(

)// hello

let dog =

newdog7()

dog.do(

)// 報錯

}// 繼承

}class

dog8

extends

dog7

} dog8.do(

)// hello

dog8.

do1(

)// world

}//注意繼承在 constructor 中使用 this,以及在子方法中呼叫父方法,需要使用 super

interview

(who)

的朋友是$`

)}}}

寫法不同,使用關鍵字 class

當 new 乙個例項,預設有乙個 constructor 方法,且預設返回例項物件(this),也可以返回另一物件

類的所有方法都在 prototype 屬性上,但是不可列舉,且每方法結束不能使用分號

類的呼叫必須通過 new 乙個例項,且類的內部預設使用嚴格模式不存在變數提公升,必須先宣告,再呼叫

class 的 this 預設指向當前類

class 的靜態方法,使用關鍵字 static,不需 new,直接通過類來呼叫

例項屬性和靜態屬性的寫法,例項屬性在類的內部直接使用等式(=)寫法,也可以寫在 constructor 方法裡,靜態屬性只需在例項屬性前加乙個關鍵字 static 即可

類的繼承使用關鍵字 extends,繼承機制與 es5 完全不同,

類的繼承可以繼承原生的建構函式,es5 不可以

class 的所有方法(包括靜態方法和例項方法)都沒有原型物件prototype,所以也沒有[[construct]],不能使用new來呼叫。

ES6 新增Symbol資料型別

1 symbol 是原始資料型別,不是物件。不能用 new 命令。可以接受乙個字串作為引數,為新建立的 symbol 提供描述。let sy symbol kk console.log sy symbol kk typeof sy symbol 注意相同引數 symbol 返回的值不相等 let s...

ES6新增資料型別

1.新增資料型別 symbol 2.proxy 用來攔截在乙個物件上的指定操作,如 var engineer var interceptor engineer new proxy engineer,interceptor engineer.salary 60 salary is changed to...

es6 新增的資料型別 symbol

應用場景 es5的物件屬性名都是字串,容易造成屬性名衝突 es6引入新的原始資料型別symbol,表示獨一無二的值 物件屬性名可以有兩種型別 1.字串 2.symbol型別 獨一無二,不會與其他屬性名產生衝突 描述 物件屬性名的問題 只會顯示lucy的名字 obj.name bob obj.name...