javascript - 对象属性的 Getter/Setter?

标签 javascript variables typescript getter-setter

在 Typescript 中,如何对对象的所有属性使用 getter/setter?例如,我可以有以下代码:

class Div {
    private _container: HTMLDivElement;
    public get container() {
        return this._container;
    }
    public set container(value) {
        alert("Updated!");
        this._container = value;
    }

    testDiv() {
        this.container = <HTMLDivElement>document.createElement('div');
        this.container.style.width = "100px";
    }
}
var newDiv: Div = new Div();
newDiv.testDiv();

“更新了!”仅提醒一次 - 当第一次设置 div 时(我猜,这确实应该是这样),但我希望它提醒“已更新!”即使我在该对象上设置属性。有没有办法做到这一点,或者我应该想出某种解决方法?

最佳答案

创建一个在对象状态发生变化时触发的事件系统。不允许直接访问属性。通过 Controller 汇集所有事件,并根据需要触发状态更改。

或者考虑使用已经做到这一点的框架。 Backbone、Knockout、Angularjs 等

关于javascript - 对象属性的 Getter/Setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329640/

相关文章:

javascript - 如何使用纯 JavaScript 和 CSS 创建垂直旋转木马

javascript - 如何使用 Lodash 搜索和过滤嵌套属性?

Javascript 相当于 Perl 的\Q ...\E 或 quotemeta()

angular - 使用 TypeScript 和 Angular 5 在抽象类中进行依赖注入(inject)

javascript - 如何使用 Bootstrap 弹出窗口的 "live"功能?

c# - 如何避免这些变量的初始化?

variables - 如何使用ffmpeg在视频的每一帧上显示帧号?

javascript - AJAX 响应的一部分存储在 PHP 变量中

javascript - JSON.Stringify 方法替换参数不适用于嵌套对象

reactjs - 第 0 行 : Parsing error: Cannot read property 'map' of undefined