前端JavaScript

THIS

2020-03-21  本文已影响0人  晚月川

THIS

函数执行的主体(不是上下文):意思是谁把函数执行的,那么执行主体就是谁
this非常的不好理解,以后遇到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();
}
上一篇 下一篇

猜你喜欢

热点阅读