1. this是关键字,不是变量,每个函数都包含一个this,这样就造成闭包函数无法直接访问外部this,在箭头函数之前比较常用的方法就是把外部this赋给一个变量,借由变量调用外部this,同样arguments也有一样的问题,可同样处理。
2. prototype:每个函数都包含prototype属性,该属性指向一个对象的引用,这个被指向的对象被称为原型对象,当函数用做构造函数时,新创建的对象会从原型上继续属性。
3. call apply方法可以看做对象的方法,通过调用方法的形式间接调用函数,call apply函数第一个参数是要调用函数的母对象,是调用上下文,在函数内部通过this获取对其的引用
4. bind方法是将一个函数绑定到对象之上
function f() { return this.x + 2;}
let o = {x:3};
let g = f.bind(o);
g(); // 5
网友评论