1.javascript 中 什么是 this?
this 指的是当前行为执行的主体,或者是当前方法执行的主体
context:是当前行为或者方法执行的环境
实例:
xx 去北京饭店吃东西;上下文是“北京饭店”, this 是 xx
2. 那么如何判断一个函数在执行的时候,函数体内的 this 关键字是谁呢?主要有以下几条规律:
1)一个函数体内的 this 关键字和这个函数的在哪里定义,哪里执行都没有关系;
2) 判断一个方法执行的时候,函数的执行主体是谁?主要看方法前面有没有点(.),如果函数执行的时候,函数前面有点 (.),点(.) 前面是谁,这个函数被执行的时候,函数体内的 this 关键字就是谁;
且看代码:
函数执行的时候,前面没有点的情况:
function fn() { console.log(this.name); } window.name = ‘windwo";
fn();
函数以 xx.fn的方式执行的时候:
person = { name:‘alice‘, } function fn(){ console.log(this.name); }
//给person 对象添加一个方法 person.fn = fn; person.fn();
3) 自执行函数执行的时候,函数体内的 this 关键字永远是 window 对象(和自执行函数在哪里执行没有任何关系);
4)给元素绑定的事件,事件触发的时候,被绑定到元素上的事件处理函数被执行的时候,函数的 this 关键字指向这个绑定事件的元素;
原文:http://www.cnblogs.com/alicePanZ/p/4796760.html