最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 从执行上下文的角度理解javascript中的this

    正文概述 掘金(鱼不语不鱼)   2021-04-18   584

    JS中的this

    this 是执行上下文的一个属性,而不是某个变量对象的属性,是一个与执行上下文相关的特殊对象。

    全局执行上下文中的this

    指向宿主对象,浏览器为window,严格模式下(strict mode),this 会绑定到undefined。

    函数执行上下文中的this

    1、通过call、bind、apply绑定的this

    指向绑定的对象,如果是null或者undefined指向全局中的this。

    2、通过对象方法调用的this

    1)使用对象来调用其内部的一个方法,该方法执行上下文中的 this 是指向对象本身的。

    2)在全局环境中调用一个函数,函数内部的 this 指向的是全局变量 window。

    3、通过构造函数中设置,new创建

    this指向新对象本身

    var tempObj = {}
    CreateObj.call(tempObj)
    return tempObj
    

    4、箭头函数中的this

    1、ES6的箭头函数不会创建自身的执行上下文,箭头函数中的this取决于它的外部函数。它的取值遵循普通普通变量一样的规则,沿着作用域链一层一层往上找。

    var obj = {
        len: 10,
        myFun: function  () {
            var innerFun = () => {
                console.log(this);
            };
            innerFun();
        }
    };
    obj.myFun(); 
    

    2、箭头函数不能用call方法来修改this。

    eval执行上下文中的this

    ......

    this的设计缺陷以及应对方案

    1、 嵌套函数中的 this 不会从外层函数中继承,指向widow

    var myObj = {
        name: 'myName',
        showThis: function() {
            console.log(this) // myObj
            function inner () {
               console.log(this)
            }
            inner() // window
        }
    }
    myObj.showThis()
    

    2、 普通函数中的 this 默认指向全局对象 window


    起源地下载网 » 从执行上下文的角度理解javascript中的this

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元