1

我有以下代码,我尝试用一​​个名为 Modal 的类替换 createModal。然而,当我尝试这个打字稿给我错误并说“当前范围内不存在链接”时:

module Admin.MyAccount.Access {

    export function createModal(link: Link) {
        link.Modal.$Modal = $.modal({
            resizeOnLoad: true
        });
        link.Modal.$Modal.applyTemplateSetup()
    }

    export class Modal {
        link: Link;
        constructor (link: Link) {
            this.link = link;
        }
        create() {
            link.Modal.$Modal = $.modal({      // < Error here
                resizeOnLoad: true
            });
            link.Modal.$Modal.applyTemplateSetup() // < Error here
        }

    }

}

当我使用该函数时,我这样调用该函数:

        createModal(link);

我在这里做错了吗?为什么我无法访问 create() 内部的链接?我也可以用静态函数来做到这一点。这会更容易吗,因为我不必调用 new 来创建 Modal 的新实例?

4

1 回答 1

1

您需要添加this到调用中,因为您需要访问类范围。


至于选择使用或不使用static归结为您如何使用该对象。您是否有对象的多个实例,但始终只需要它的 1 个副本?如果是这样,请使用static.

这意味着您的所有模态都将链接在一起,并且始终只能有一个。

在javascript中使用静态

静态函数(即无论您创建多少对象,该函数只有一个副本)对于实用程序函数非常方便。

于 2012-11-15T14:01:03.460 回答