時(shí)間:2019/10/31
10).ES6類的本質(zhì)
類的本質(zhì)其實(shí)還是一個(gè)函數(shù)徙缴,可以認(rèn)為類就是構(gòu)造函數(shù)的另一種寫(xiě)法俏让。
1).構(gòu)造函數(shù)+原型實(shí)現(xiàn)面向?qū)ο缶幊?br>
(1) 構(gòu)造函數(shù)有原型對(duì)象prototype
(2) 構(gòu)造函數(shù)原型對(duì)象prototype里面有constructor指向構(gòu)造函數(shù)本身
(3) 構(gòu)造函數(shù)可以通過(guò)原型對(duì)象添加方法
(4) 構(gòu)造函數(shù)創(chuàng)建的實(shí)例對(duì)象proto原型指向構(gòu)造函數(shù)的原型對(duì)象
2).ES6通過(guò)類實(shí)現(xiàn)面向?qū)ο缶幊?br>
(1) 類有原型對(duì)象prototype
(2) 類原型對(duì)象prototype里面有constructor指向類本身
(3) 類可以通過(guò)原型對(duì)象添加方法
(4) 類創(chuàng)建的實(shí)例對(duì)象proto原型指向類的原型對(duì)象
3.ES5中的新增方法
1).數(shù)組方法
// forEach 迭代(遍歷)數(shù)組(其中return不會(huì)終止迭代)
arr.forEach(function(value, index, array) {
// value 每個(gè)數(shù)組元素本身
// index 每個(gè)數(shù)組元素索引號(hào)
// array 數(shù)組本身
})
// filter 篩選數(shù)組(其中return不會(huì)終止迭代)
var newArr = arr.filter(function(value, index, array) {
return value >= 20; // 返回新數(shù)組如叼,為滿足條件的數(shù)組元素
});
// some 查找數(shù)組中是否有滿足條件的元素(return true終止迭代)
var flag = arr.some(function(value, index, array) {
return value >= 20; // 返回布爾值市怎,找到第一個(gè)滿足條件的值即跳出循環(huán)
})
2).字符串方法
// trim 去除字符串兩側(cè)空格
str.trim();
3).對(duì)象方法
// Object.defineProperty() 定義對(duì)象中新屬性或修改原有屬性
Object.defineProperty(obj, prop, descriptor);
/*
descriptor特性:
value: 屬性值,
writable: true, 允許修改該屬性值鸯檬,默認(rèn)為false
enumerable: true, 允許遍歷該屬性伶选,默認(rèn)為false
configurable: true 允許刪除該屬性且修改特性隐岛,默認(rèn)為false
*/
// Object.keys() 用于獲取對(duì)象自身所有屬性
Object.keys(obj); // 返回對(duì)象屬性名組成的數(shù)組