Javascript跟踪变量

时间:2010-12-25 12:26:04

标签: javascript html class javascript-events

是否可以跟踪javascript中的变量?我希望能够在类中更改变量时启动函数。

<script>
var mywindow = new Box();
mywindow.title = "newtitle"; 
//Launches mywindow.applyTitle() and changes html
</script>

2 个答案:

答案 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" );