对象中function的简写
var obj = {
foo(){}
}
1: 有 this 有super
2: 不能 obj.foo.prptotype修改foo的原型。
3:Object.setprototypeOf(obj.foo,{}) 修改foo原型
函数的扩展
rest参数
- 使用背景:es6的
- 优点:arguments是伪数组,而rest参数是真数组
function fn(...args){ // rest 参数
console.log(args); //数组:[1,2,3,4,5]
}
fn(1,2,3,4,5)
箭头函数
- 场景:用于替换匿名函数
- 基本用法:
//匿名函数
div.onclick=function(){
console.log("你好")
}
//箭头函数
div.onclick=()=>{
console.log("你好")
}
- 有一个参数的箭头函数
var fn=(a)=>{
console.log("abc");
}
//等价于:
var fn=a=>{
console.log("abc");
}
- 有2个及更多参数的箭头函数
var f=(a,b,c)=>{
console.log("abc")
}
- 箭头函数注意事项
- 箭头函数不能作为构造函数;不能new实例化
- 箭头函数内部没有this (重点)
- 箭头函数内部没有 arguements 可以哟弄个restt 参数代替
- 不可以使用
yield
命令,因此箭头函数不能用作 Generator 函数
- 箭头函数和普通匿名函数有哪些不同?
- 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
- 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
- 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
- (不常用)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
- generator函数现在经常用async替代
对象的扩展
- Object.assign:实现拷贝继承
- 对象扩展运算符
var obj1={ age:5,gender:"男" }
var obj2={ ...obj1 }
var obj3={ ...obj1 , age:10 }
// 浅拷贝 一个参;深拷贝两个参
var source={ age:18,height:170,className:"3年2班" }
//克隆一个新对象出来
var newObj=Object.assign({},source);
console.log(newObj);
var newObj2={};
Object.assign(newObj2,source);
console.log(newObj2);
- 对象中新增属性 super.xx
- 将某个属性挂在在某个属性的原型对对象上
异步
学习方式or看懂代码