this
this的指针作用域:
- 1、在全局中使用this,表示全局的global对象,在浏览器中this指向window对象;
- 2、当在函数执行环境中使用this时,如果函数没有明显的作为非window对象的属性,而只是定义了函数,不管这个函数是不是定义在另一个函数中,这个函数中的this仍然表示window对象。如果函数显示地作为一个非window对象的属性,那么函数中的this就代表这个对象;
- 3、当通过new运算符来调用函数时,函数被当做一个构造函数,this指向构造函数创建出来的对象;
- 4、this在箭头函数中失效了,因为这是箭头函数没有单独的this值,箭头函数this与声明的所在的上下文相同,也就是说明箭头函数的时候,不会隐士的调用this参数,而是从定义时的函数继承上下文。
call
继承,把父类私有属性和方法,克隆一份一模一样的,作为子类私有的属性和方法。
function A() {
// 一个函数有三种角色:1、普通函数(私有作用域)2、类(new)3、普通对象(__proto__)
this.x = 100;
this.y = 200;
this.a = function () {
console.log(this.x);