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

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

有沒有辦法在 JavaScript 中代理對屬性的調(diào)用?

有沒有辦法在 JavaScript 中代理對屬性的調(diào)用?

精慕HU 2022-01-20 20:40:26
我想在 JavaScript 中向字符串添加一個計數(shù)屬性,它在內(nèi)部調(diào)用長度屬性。我不想將其添加為功能。這個怎么做?"abc".count;  // 3
查看完整描述

2 回答

?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗 獲得超10個贊

您可以嘗試這樣做:


Object.defineProperty(String.prototype, 'count', {

  get: function() { return this.length; }

});


console.log(

  "abc".count // 3

)

但我建議您避免在 JS 中擴(kuò)展現(xiàn)有對象。你可以在這里閱讀更多關(guān)于它的信息


查看完整回答
反對 回復(fù) 2022-01-20
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

雖然我是 ES5 的粉絲,但 ES6 帶來的一件好事終于是代理了。你不必使用它們,但它們會給你很大的靈活性和一致性:


function convertToProxy(x){

    x = Object(x);

    let proxy = new Proxy(x,{

        get: function(x,key,proxy){

            switch (key) {

                case "count":

                    return 3;

                default:

                    return function(){

                        return "hmmmm"

                    };

            }

        },

        getPrototypeOf: function(x){

            return String.prototype;

        }

    });

    return proxy;

}


let y = convertToProxy("abc");

y + "a" // "hmmmma"

y - 3 // NaN

y.count - 3 //0


查看完整回答
反對 回復(fù) 2022-01-20
  • 2 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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