时间:2019/10/31
10).ES6类的本质
类的本质其实还是一个函数,可以认为类就是构造函数的另一种写法。
1).构造函数+原型实现面向对象编程
(1) 构造函数有原型对象prototype
(2) 构造函数原型对象prototype里面有constructor指向构造函数本身
(3) 构造函数可以通过原型对象添加方法
(4) 构造函数创建的实例对象proto原型指向构造函数的原型对象
2).ES6通过类实现面向对象编程
(1) 类有原型对象prototype
(2) 类原型对象prototype里面有constructor指向类本身
(3) 类可以通过原型对象添加方法
(4) 类创建的实例对象proto原型指向类的原型对象
3.ES5中的新增方法
1).数组方法
// forEach 迭代(遍历)数组(其中return不会终止迭代)
arr.forEach(function(value, index, array) {
// value 每个数组元素本身
// index 每个数组元素索引号
// array 数组本身
})
// filter 筛选数组(其中return不会终止迭代)
var newArr = arr.filter(function(value, index, array) {
return value >= 20; // 返回新数组,为满足条件的数组元素
});
// some 查找数组中是否有满足条件的元素(return true终止迭代)
var flag = arr.some(function(value, index, array) {
return value >= 20; // 返回布尔值,找到第一个满足条件的值即跳出循环
})
2).字符串方法
// trim 去除字符串两侧空格
str.trim();
3).对象方法
// Object.defineProperty() 定义对象中新属性或修改原有属性
Object.defineProperty(obj, prop, descriptor);
/*
descriptor特性:
value: 属性值,
writable: true, 允许修改该属性值,默认为false
enumerable: true, 允许遍历该属性,默认为false
configurable: true 允许删除该属性且修改特性,默认为false
*/
// Object.keys() 用于获取对象自身所有属性
Object.keys(obj); // 返回对象属性名组成的数组