小编Arm*_*bie的帖子

带有属性装饰器的TypeScript类就像静态一样

我编写了一个带有属性装饰器的类,它在设置了装饰属性时在类中设置了一个标志.我还希望能够从该类的一个实例复制到另一个实例.问题是当我在一个对象上设置属性值时,另一个对象上的属性值也会发生变化,就好像该属性是静态的一样.我是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)

javascript properties decorator typescript

1
推荐指数
1
解决办法
1658
查看次数

标签 统计

decorator ×1

javascript ×1

properties ×1

typescript ×1