javascript之彻底理解this

彻底理解this,需要彻底理解函数

  • 函数是复杂类型,存储在堆中. 

  • 函数是独立的, 对象中的方法只是对象中有个函数的引用

  • 函数被调用时,调用者会像被调用者提供个上下文环境, 这个环境就是this

  • 构造函数稍微有点特殊,它绑定了上下文,添加了原型,调用了方法

"use strict";
 var name = "hello";
 var obj = {
  name:"wanhong",
  getName:function(){
    console.log(this.name);
  }
 }

// 默认调用
obj.getName(); // wanhong

// 引用调用
var fun = obj.getName;
fun(); 

// 应用apply改变context
var scope = {name:"world"}; 
fun.apply(scope);   // world

// 构造函数自带context
function People() {
  this.name='wanhong';
}
var p = new People();
//构造的过程差不多如下
// var scope = {name:"wanhong"};
// scope.__proto__ = People.prototype;
// scope.constructor = People;
// People.apply(scope);
// return scope;
原文地址:https://www.cnblogs.com/honghong87/p/6010773.html