第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

vue methods中的函數(shù)是如何強(qiáng)制綁定到vue實(shí)例中的

vue methods中的函數(shù)是如何強(qiáng)制綁定到vue實(shí)例中的

蝴蝶不菲 2018-07-14 16:15:08
問題:vue methods中的函數(shù)是如何強(qiáng)制綁定到vue實(shí)例中的?var obj = {    eventHandle: function (){        // this指向window         console.log(this);     } };window.addEventListener("resize", obj.eventHandle, false);var obj = {         eventHandle: function (){        // this指向window         console.log(this);     }.bind(obj) };window.addEventListener("resize", obj.eventHandle, false);var vm = new Vue({         el: "#app",         methods: {                 eventHandle: function (){                         console.log(this);         }     },     mounted(){        /*             // this指向當(dāng)前vue實(shí)例             window.addEventListener("resize", this.eventHandle.bind(this), false);          */                  /* this指向當(dāng)前vue實(shí)例。很奇怪為什么這樣給window綁定事件,         事件執(zhí)行函數(shù)的this還是指向當(dāng)前vue實(shí)例 */         window.addEventListener("resize", this.eventHandle, false);              } });
查看完整描述

2 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

你要注意的是,你這個(gè)方法是寫在了vue實(shí)例當(dāng)中的,那么this指向的怎么會(huì)不是vue實(shí)例呢,如果不是指向vue實(shí)例,那么根本訪問不了 menthods屬性下面的eventhandle方法了

查看完整回答
反對(duì) 回復(fù) 2018-07-19
?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

給你貼一段源碼,可以看出vue里面的方法都被bind強(qiáng)制綁定了this上下文,如果你對(duì)bind也不了解,可以自己搜索下

function nativeBind(fn, ctx) {    return fn.bind(ctx)
}
var bind = Function.prototype.bind ? nativeBind : polyfillBind;function initMethods(vm, methods) {    //...
    for(var key in methods) {
        {            
            //一系列錯(cuò)誤檢查...
        }
        vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
    }
}

所以window.addEventListener("resize", this.eventHandle, false);中this.eventHandle中的this沒有指向window,而是指向了vm實(shí)例


查看完整回答
反對(duì) 回復(fù) 2018-07-19
  • 2 回答
  • 0 關(guān)注
  • 4111 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)