javascript - 如何對一個變量綁定回調(diào)函數(shù)
問題描述
Javascript可以給一個變量綁定回調(diào)函數(shù)嗎?即:當這個變量的值變化,觸發(fā)回調(diào)函數(shù),執(zhí)行回調(diào)函數(shù)內(nèi)的內(nèi)容。
問題解答
回答1:var test = { _age : 0, methods:function(a){
console.log('發(fā)生變化了值為:'+a);
},//_Age的讀寫set age(age) {
if(age!=this._age){ this.methods(age); this._age = age;}},
get age() {return this._age;} };可以利用對象的set和get方法來執(zhí)行想要的結(jié)果
回答2:不能直接實現(xiàn)。但是可以通過其他方式實現(xiàn)。
var obj = {set: function (key, value) { if([’set’, ’change’].indexOf(key) > -1) return; this[key] = value; this.change();}, }; obj.change = function(){alert(1)console.log(this); } obj.set(’name’, ’segmentfault’); // 將你需要的變量設(shè)為obj的一個屬性 // 更改變量用obj.set()這個方法回答3:
js的set/get你可以在set方法里面添加你的邏輯代碼,這樣每次修改的時候就會觸發(fā)你的代碼
相關(guān)文章:
1. css - C#與java開發(fā)Windows程序哪個好?2. mysql無法添加外鍵3. css - 定位為absolute的父元素中的子元素 如何設(shè)置在父元素的下面?4. java - Mybatis查詢數(shù)據(jù)庫時出現(xiàn)查詢getInt()的錯誤5. JavaScript事件6. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標?7. javascript - es6將類數(shù)組轉(zhuǎn)化成數(shù)組的問題8. 在mac下出現(xiàn)了兩個docker環(huán)境9. css3 - flex 父標簽設(shè)置align-item:center,子元素flex:1,不起作用10. java - 是否類 類型指針、引用作為形參 ,函數(shù)結(jié)束不會自動析構(gòu)類?
