バインディング
ステートフルJavaScript 5.3
by FiNGAHOLiC
HTML
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
JavaScript
(function(){
var addChange = function(ob){
ob.change = function(callback){
if(callback){
if(!this._change) this._change = [];
this._change.push(callback);
}else{
if(!this._change) return;
for(var i = 0; i < this._change.length; i++){
this._change[i].apply(this);
};
};
};
};
var object = {};
object.name = 'Foo';
addChange(object);
object.change(function(){
console.log('変更されました!', this);
});
object.change();
object.name = 'Bar';
object.change();
}());