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;