Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;“实例范围”;TypeScript类的getter/setter?_Javascript_Oop_Typescript_Ecmascript 6_Getter Setter - Fatal编程技术网

Javascript &引用;“实例范围”;TypeScript类的getter/setter?

Javascript &引用;“实例范围”;TypeScript类的getter/setter?,javascript,oop,typescript,ecmascript-6,getter-setter,Javascript,Oop,Typescript,Ecmascript 6,Getter Setter,所以我知道我可以为每个属性设置getter/setter export class Person { private _name: string; set name(value) { this._name = value; } get name() { return this._name; } } 但是有没有一种方法可以让“全局实例范围”的setter在类实例的任何属性被修改时触发呢? 没有在调用触发器函数的每个get

所以我知道我可以为每个属性设置getter/setter

export class Person {
    private _name: string;

    set name(value) {
        this._name = value;
    }

    get name() {
        return this._name;
    }
}
但是有没有一种方法可以让“全局实例范围”的setter在类实例的任何属性被修改时触发呢? 没有在调用触发器函数的每个getter/setter中手动添加函数调用?比如,打字机脚本中内置的东西


提前感谢。

TypeScript中没有内置的方法来实现这一点,也没有JavaScript运行时功能


最接近的东西是一个,它可以包装一个底层对象并截取属性指定。但您必须确保类实例在传递到其他地方之前已包装好。

您需要它做什么?@Bergi我希望在实例更改时发出事件,而不是在每个setter中发出它(或调用类中的发出函数)(这也要求我在不需要设置器时添加设置器,以便能够跟踪更改)。因此,您不需要查看任何属性,只需要查看实例拥有的所有属性。您可以通过编程方式轻松地向它们添加设置器。