亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

前端新手求助面向對象問題

前端新手求助面向對象問題

慕萊塢森 2018-10-26 18:11:10
現在有一個對象如下:var doc= $(document);function people(){                        //一個people對象this.name = li; } people.prototype = {                      //對象方法     sayName: function(){        console.log(this.name);     }     bindEvent: function(){                //綁定頁面元素         doc.delegate('button','click',function(){             people.sayName();   //這里報錯Uncaught TypeError: people.sayName is not a function                                 //這里想調用sayName方法,但是會報錯         });     } }前端新手,剛剛接觸面向對象,我想問為什么調用sayName 方法會報這個錯誤,請教一下這個錯誤的原因我應該去看js什么方面的書能夠更透徹的理解
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

sayName方法在對象的構造函數的原型,其實例才具有sayName方法;

像樓上那樣的是一種解決方案;

//方法1bindEvent: function() { //綁定頁面元素
    doc.delegate('button', 'click', this.sayName.bind(this));//此處通過bind方法強制綁定this對象}//方法2bindEvent: function() { //綁定頁面元素
    var _this = this;
    doc.delegate('button', 'click', function() {
        _this.sayName();
    });//此處通過變量存儲this}//方法3bindEvent: function() { //綁定頁面元素
    doc.delegate('button', 'click', () => this.sayName());//通過箭頭函數,箭頭函數的this指向上層函數}


查看完整回答
反對 回復 2018-11-17
  • 1 回答
  • 0 關注
  • 451 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號