摘要:先實(shí)現(xiàn)一個簡單的數(shù)據(jù)劫持。思路遍歷對象的每個屬性,為每個屬性掛上監(jiān)聽函數(shù)即利用進(jìn)行元編程考慮屬性的子屬性的監(jiān)聽先上代碼你訪問了你設(shè)置了新的其中涉及的知識點(diǎn)如果屬性值還是對象,則遞歸繼續(xù)
先實(shí)現(xiàn)一個簡單的數(shù)據(jù)劫持。
思路:
遍歷對象的每個屬性,為每個屬性掛上監(jiān)聽函數(shù)(即利用Object.defineProperty進(jìn)行元編程);
考慮屬性的子屬性的監(jiān)聽;
先上代碼:
function Observer(data) { this.data = data; this.walk(data); } Observer.prototype.walk = function(obj) { var val; for (var key in obj) { if (obj.hasOwnProperty(key)) { val = obj[key]; if (obj[key] instanceof Object) { new Observer(obj[key]); } this.convert(key, val); } } } Observer.prototype.convert = function(key, val) { Object.defineProperty(this.data, key, { enumerable: true, configurable: true, get: function() { console.log("你訪問了" + key); return val; }, set: function(newVal) { console.log("你設(shè)置了" + key); console.log("新的" + key + "=" + newVal); if (val === newVal) { return; } val = newVal; } }); } var data = { user: { name: "lixixi", age: "24" }, address: { city: "beijing" } }; var app = new Observer(data);
其中涉及的知識點(diǎn):
Object.defineProperty(object, key, {});
如果屬性值還是對象,則遞歸繼續(xù)new Observer;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82130.html
摘要:作為大型應(yīng)用狀態(tài)管理最常用的工具。它是一個應(yīng)用數(shù)據(jù)流框架,與框架類似。這是觸發(fā)變化的惟一途徑。在這個函數(shù)內(nèi)部,被調(diào)用,其作用是監(jiān)測是的。否則的話,認(rèn)為只是一個普通的,將通過也就是進(jìn)一步分發(fā)。到此源碼的主要部分學(xué)習(xí)結(jié)束。 Redux作為大型React應(yīng)用狀態(tài)管理最常用的工具。它是一個應(yīng)用數(shù)據(jù)流框架,與Flux框架類似。它是零依賴的,可以配合其他框架或者類庫一起使用。雖然在平時的工作中很多...
摘要:回調(diào)隊(duì)列中的元素是對象,代表一個事件回調(diào),擁有多個屬性,如等等,其中是回調(diào)函數(shù),在觸發(fā)時通過傳遞,具體的在后面講。類型是時鍵表示事件名,規(guī)則同上,鍵值表示事件觸發(fā)時的回調(diào)函數(shù)。 jQuery源碼學(xué)習(xí)之event jQuery的事件機(jī)制為異步回調(diào),事件監(jiān)聽的屬性、參數(shù)和回調(diào)的等保存在Data實(shí)例中,在元素上保存該對象的引用。有方法handle,內(nèi)部執(zhí)行dispatch;有屬性events...
摘要:目前,有三個明確的框架可供選擇。和在眾多開源框架中贏得了開發(fā)人員和公司的信任。雖然這三個框架有許多共同之處,但它們的受歡迎程度因行業(yè)而異。使用,這有助于在編碼時發(fā)現(xiàn)并糾正常見錯誤。 人們首先注意到的是你的應(yīng)用程序的視覺吸引力。大多數(shù)用戶傾向于將界面設(shè)計(jì)與公司的信譽(yù)和專業(yè)能力聯(lián)系起來。這就是為什么選擇正確的前端技術(shù)對你的業(yè)務(wù)...
閱讀 3429·2021-11-15 11:39
閱讀 1573·2021-09-22 10:02
閱讀 1319·2021-08-27 16:24
閱讀 3606·2019-08-30 15:52
閱讀 3418·2019-08-29 16:20
閱讀 832·2019-08-28 18:12
閱讀 559·2019-08-26 18:27
閱讀 726·2019-08-26 13:32