是否可以跟踪javascript中的变量?我希望能够在类中更改变量时启动函数。
<script>
var mywindow = new Box();
mywindow.title = "newtitle";
//Launches mywindow.applyTitle() and changes html
</script>
答案 0 :(得分:2)
您可以使用显式方法设置值并将回调附加到该值。这样做会有效:
var Box = new Class({
setTitle: function(title) {
this.title = title;
// call your callbacks now. you probably need some way to register them btw
}
});
调整想法以适合您的类语法......
JS还有一个不太受支持的getter / setter语法(相当于Python中的属性)。请参阅http://ejohn.org/blog/javascript-getters-and-setters/。
答案 1 :(得分:2)
不自动。最好的方法是使用setter函数添加Box
类的原型,而不是直接设置属性。
示例: http://jsfiddle.net/PEYyk/
var Box = function() {
// the constructor
};
Box.prototype.setTitle = function( new_title ) {
this.title = new_title;
this.applyTitle();
};
Box.prototype.applyTitle = function() {
// apply the title
};
然后这样称呼:
var mywindow = new Box();
mywindow.setTitle( "newtitle" );