我编写了一个带有属性装饰器的类,它在设置了装饰属性时在类中设置了一个标志.我还希望能够从该类的一个实例复制到另一个实例.问题是当我在一个对象上设置属性值时,另一个对象上的属性值也会发生变化,就好像该属性是静态的一样.我是JavaScript和TypeScript的新手.我错过了什么?
运行下面的文本代码将记录:
Setting propNum from undefined to 0
testclass.ts:18 Setting propNum from 0 to 123
test.spec.ts:13 t1.propNum = 123
test.spec.ts:14 t2.propNum = 123
Run Code Online (Sandbox Code Playgroud)
t1.propNum应该仍为零
//
// property decorator to set dirty flag automatically for any decorated property
//
function testProperty( target: any, key: string ) {
// property value
var _val = this[key];
// property getter
function getter() {
return _val;
};
// property setter
function setter( newVal ) {
if ( _val != newVal ) {
console.log( `Setting …Run Code Online (Sandbox Code Playgroud)