彻底理解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;

最新文章

  1. 出现Bad command or the file name的原因
  2. SourceTree克隆仓库时,总是提示输入密码
  3. Oracle DB 分区特性概述 Overview of Partitions
  4. (转)《深入理解java虚拟机》学习笔记2——Java内存溢出实例
  5. 【转载】NativeSQL实例
  6. css height:100%失效
  7. SmartCoder每日站立会议09
  8. java中集合类HashSet、ArrayList、LinkedList总结
  9. [linux] C语言Linux系统编程-TCP通信的11种状态
  10. Cocos2d中update与fixedUpdate的区别(三)
  11. 「工具」Aquarelo - 来自意大利的色阶管理工具
  12. Cisco IP 电话 将它的voice mail 发送到手机
  13. EMM386和UMBPCI 区别
  14. Redis设置内存最大占用值
  15. SQL Data Compare 对比 SQLserver数据
  16. 深入浅出Nodejs读书笔记
  17. adb shell中的am pm命令
  18. (转)总结之:CentOS 6.5 MySQL数据库的基础以及深入详解
  19. Python类总结-封装(Property, setter, deleter)
  20. head first (三):装饰者模式

热门文章

  1. nohup和&后台运行,进程查看及终止 详解
  2. C#的Dispose模式复习
  3. ruby学习笔记(3)- 新手入门
  4. python 多线程笔记(5)-- 生产者/消费者模式
  5. UTC时间转为正常日期
  6. STM32L431驱动带UC1698芯片调试记录
  7. MSP-EZ430U_02板子测试使用
  8. mybatis mapper空指针异常的问题
  9. 运输层(TCP/UDP)详解
  10. 合并SQL 调优