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

資訊專欄INFORMATION COLUMN

js保護(hù)內(nèi)部數(shù)據(jù)的三種方式

wwolf / 1795人閱讀

摘要:使用對(duì)象代理就是就是屬性這里也可以定義規(guī)則可以在這里進(jìn)行各種規(guī)則設(shè)置不起作用

js中三種實(shí)現(xiàn)私有化內(nèi)部數(shù)據(jù)的方式

通過暴露set和get兩個(gè)公共api的方式,通過這兩個(gè)api對(duì)內(nèi)部數(shù)據(jù)進(jìn)行操作和保護(hù),規(guī)則可以寫在get和set方法中

function Person = {
  var data = {
    name: "es3",
    sex: "female",
    age: 12
  };
  this.get = function (key) {
    return data[key];
  }
  this.set = function (key, value) {
    if (key !== "sex") {
      data[key] = value;
    }
  }
};
var person = new Person();
console.table({
  name: person.get("name"),
  sex: person.get("sex"),
  age: person.get("age")
});// name: "es3", sex: "female", age: 12
person.set("sex", "male"); // person.get("sex") === "female" 對(duì)set做了判斷,所以設(shè)置沒用,這樣就通過定義實(shí)例的 set和get方式來保護(hù) 內(nèi)部的data變量

直接使用 defineProperty對(duì)數(shù)據(jù)屬性進(jìn)行限制

// 不能設(shè)置規(guī)則,哪種情況哪些屬性可以讀寫,使用defineProperty就搞不定
var Person = {
  name: "es3",
  sex: "female",
  age: 12
};
Object.defineProperty(Person, "sex", {
  writable: false,
  value: "female"
});
Person.sex = "male"; // Person.sex === female; 會(huì)失敗,嚴(yán)格模式會(huì)報(bào)錯(cuò)。

使用 Proxy 對(duì)象代理

var Person = {
  name: "es3",
  sex: "female",
  age: 12
};
let person = new Proxy(Person, {
  get(target, key) {
    // target就是 Person, key就是屬性,這里也可以定義規(guī)則
    return target[key];
  },
  set(target, key, value) {
    // 可以在這里進(jìn)行各種規(guī)則設(shè)置
    if (key !== "sex") {
      target[key] = value;
    }
  }
});
person.sex = "male"; // 不起作用

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

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

相關(guān)文章

  • 文章6:JS高級(jí)

    摘要:一正則表達(dá)式使用正則表達(dá)是的字符串的三個(gè)基礎(chǔ)用法進(jìn)階用法的用法支持正則的用法的正則用法的普通用法如果匹配不到值返回的進(jìn)階用法正則的進(jìn)階知識(shí)字符串的普通用法正則用法二面向?qū)ο蠓庋b繼承多態(tài)三原型鏈與作用域鏈原型鏈作用域鏈四嚴(yán)格模式嚴(yán)格模式的實(shí)現(xiàn) 一、JS正則表達(dá)式 使用正則表達(dá)是的字符串的三個(gè)API //(1)replace基礎(chǔ)用法 var str = welcome to my ho...

    v1 評(píng)論0 收藏0
  • 云存儲(chǔ)必備的六大要素是哪些

    摘要:本篇白皮書的目標(biāo)是描述企業(yè)云計(jì)算中存儲(chǔ)必備的個(gè)要素。雖然,云存儲(chǔ)服務(wù)提供商在考慮成本的同時(shí)繼續(xù)增加可用性,但是目前市場(chǎng)上的服務(wù)級(jí)別協(xié)議不能滿足企業(yè)關(guān)鍵應(yīng)用的需求。內(nèi)部企業(yè)方案和企業(yè)云存儲(chǔ)的主要差別在于,主數(shù)據(jù)保護(hù)在方案中是如何綁定的。在最近對(duì)云計(jì)算的所有關(guān)注中,存儲(chǔ)更多地被視為基礎(chǔ)平臺(tái)。時(shí)至今日,許多云計(jì)算提供的僅僅局限于CPU內(nèi)核的集合,定量的內(nèi)存分配,低轉(zhuǎn)速存儲(chǔ),或者還有一些面向互聯(lián)網(wǎng)的...

    2bdenny 評(píng)論0 收藏0
  • 《Effective Java》,關(guān)于方法

    摘要:檢查參數(shù)的有效性每當(dāng)編寫方法或者構(gòu)造器時(shí),應(yīng)該考慮它的參數(shù)有哪些限制。為了保護(hù)實(shí)例的內(nèi)部信息避免受到這種攻擊,對(duì)于構(gòu)造器的每個(gè)可變參數(shù)進(jìn)行保護(hù)性拷貝是必要的,并且使用備份對(duì)象作為實(shí)例的組件,而不是使用原始的對(duì)象。 檢查參數(shù)的有效性 每當(dāng)編寫方法或者構(gòu)造器時(shí),應(yīng)該考慮它的參數(shù)有哪些限制。應(yīng)該把這些限制寫到文檔中,并且在這個(gè)方法體開頭處,通過顯示的檢查來實(shí)施這些限制。養(yǎng)成這樣的習(xí)慣非常重要...

    worldligang 評(píng)論0 收藏0
  • 常見三種撞庫方法

    摘要:最常見的三種撞庫方法第一種用個(gè)密碼字典撞個(gè)賬號(hào),這個(gè)的表象是,一個(gè)賬號(hào)在某個(gè)較短的時(shí)間內(nèi),可能會(huì)有多次密碼嘗試。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。 在安全領(lǐng)域向來是先知道如何攻,其次才是防。在介紹如何防范網(wǎng)站被黑客掃描撞庫之前,先簡單介紹一下什么是撞庫:撞庫是黑客通過收集互聯(lián)網(wǎng)已泄露的用戶和密碼信息,生成對(duì)于的字典表,嘗試批量登錄其他網(wǎng)站后,得到一系列可以登錄的用戶。...

    ctriptech 評(píng)論0 收藏0
  • 對(duì)反游戲外掛技術(shù)的思考及實(shí)現(xiàn)

    摘要:內(nèi)部調(diào)用外掛使用逆向技術(shù)分析出游戲內(nèi)部的匯編代碼,把里面對(duì)游戲玩家有利的函數(shù)作為外掛的實(shí)現(xiàn)功能。檢測(cè)代碼段在游戲沒有運(yùn)行之前,修改添加或刪除文件的二進(jìn)制信息可以起到修改程序流程的作用,從而起到外掛的作用。 前言 現(xiàn)如今,有很多游戲外掛軟件,它們可以修改游戲顯示的數(shù)據(jù)和內(nèi)部代碼,來達(dá)到謀取利益...

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

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

0條評(píng)論

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