国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

(動(dòng)手)攔截getter,setter

YuboonaZhang / 3428人閱讀

前言

首先出道面試上機(jī)題簡(jiǎn)化版(來(lái)自喜馬拉雅Fm),侵刪。

        ****
        你需要在這里完成People的構(gòu)造函數(shù)
        ****
        //從而會(huì)按照期望執(zhí)行下面的代碼
        var man = new People("小明");
        var women = new People("小紅")
        console.log(man.name)      // 期望為       小明
        man.name = "小剛"          // 期望為        warn:不允許通過(guò)賦值運(yùn)算符
        console.log(man.name)     // 期望為       小明
        console.log(women.name)   // 期望為       小紅
        women.setName("小黃")
        console.log(women.name)   // 期望為       小黃

我的方案 Object.defineProperty
 var People = function (name){
            this._name = name;
            Object.defineProperty(this,"name",{
                get:function(){
                    return this._name
                },
                set:function(name){
                    console.warn("不允許通過(guò)賦值運(yùn)算符")
                }
            })
            this.setName = function(name){
                this._name = name;
            }
        }
Proxy
var createPeople = function(name){
            var obj = new Object();
            obj._name = name;
            obj.setName =  function(name){
                this._name = name;
            }
            return obj
        }
        var People = function (name){
            return new Proxy(createPeople(name), {
            get: function (target, key, receiver) {
                if(key === "name"){
                    return target["_name"]
                }
                return target[key];
            },
            set:function(target,key,value,receiver){
                if(key === "_name"){
                    target._name = value
                    return 
                }
                console.warn("不允許通過(guò)賦值運(yùn)算符")
            }
        });
        }
Class
class People{
             constructor(name){
                 this._name = name;
             }
             get name(){
                 return this._name;
             }
             set name(name){
                console.warn("不允許通過(guò)賦值運(yùn)算符")
             }
             setName(name){
                 this._name = name;
             }
        }
小結(jié)
我把自己的代碼放出來(lái),拋磚引玉,也希望大家可以 review我的代碼,指出不足之處和可優(yōu)化之處。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/97844.html

相關(guān)文章

  • 動(dòng)手寫(xiě)個(gè)數(shù)字輸入框2:起手式——攔截非法字符

    摘要:前言最近在用封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。因此我們要繼續(xù)補(bǔ)充下面兩步,并且由于事件觸發(fā)時(shí)值還沒(méi)被修改,于是我們需要將值和當(dāng)前輸入值做組合來(lái)做預(yù)判,進(jìn)一步擴(kuò)大非法字符集。 前言 ?最近在用Polymer封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。本系列打算分4篇來(lái)敘述這段可歌可泣的踩坑經(jīng)歷: 《動(dòng)手寫(xiě)個(gè)數(shù)字輸入框1:input[...

    microcosm1994 評(píng)論0 收藏0
  • 動(dòng)手寫(xiě)個(gè)數(shù)字輸入框2:起手式——攔截非法字符

    摘要:前言最近在用封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。因此我們要繼續(xù)補(bǔ)充下面兩步,并且由于事件觸發(fā)時(shí)值還沒(méi)被修改,于是我們需要將值和當(dāng)前輸入值做組合來(lái)做預(yù)判,進(jìn)一步擴(kuò)大非法字符集。 前言 ?最近在用Polymer封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。本系列打算分4篇來(lái)敘述這段可歌可泣的踩坑經(jīng)歷: 《動(dòng)手寫(xiě)個(gè)數(shù)字輸入框1:input[...

    233jl 評(píng)論0 收藏0
  • 動(dòng)手寫(xiě)個(gè)數(shù)字輸入框3:痛點(diǎn)——輸入法是個(gè)魔鬼

    摘要:前言最近在用封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。因此我們能做的是通過(guò)事件作事后補(bǔ)救措施在中攔截輸入法中輸入的和按鍵事件,然后自行出發(fā)事件執(zhí)行補(bǔ)救措施。 前言 ?最近在用Polymer封裝純數(shù)字的輸入框,開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。本系列打算分4篇來(lái)敘述這段可歌可泣的踩坑經(jīng)歷: [《動(dòng)手寫(xiě)個(gè)數(shù)字輸入框1:input[type=number...

    yy13818512006 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<