THIS
2020-03-21 本文已影响0人
晚月川
THIS
函数执行的主体(不是上下文):意思是谁把函数执行的,那么执行主体就是谁
this非常的不好理解,以后遇到this,想到一句话:“你以为你以为的就是你以为的”
this是谁和函数在哪创建的或者在哪执行的都没有必然联系
- 掌握几条分清执行的主体的规律
-
给元素的某个事件绑定方法,当事件触发方法执行的时候,方法中的this是当前操作的元素本身
-
如何确定执行主体(this)是谁?当方法执行的时候,我们看方法前面是否有点,没有点this是window或undefined;有点,点前面是谁this就是说谁
-
在构造函数模式执行中,函数体中的this是当前类的实例
-
var name = '你好';
function fn() {
console.log(this);
}
var obj = {
name:"世界";
fn:fn;
}
obj.fn();//=>this:obj
fn();//=>this:window(非严格模式,严格模式下是undefined) window.fn()把window.省略了
(function(){
//自执行函数中的this是window或undefined
})
思考?????????????
//=>hasOwnProperty方法中的this:ary.__proto__.__proto__
ary.__proto__.__proto__.hasOwnProperty()
let obj={
fn:(function(n){
//把自执行函数执行的返回结果赋值给fn
//this:window
return function(){
//=>fn等于这个返回的小函数
//this:obj
}
})(10)
};
obj.fn();
function fn() {
//this:window
console.log(this);
}
document.body.onclick=function() {
//this:document.body
fn();
}