如何在类函数中访问类变量?

时间:2012-11-15 13:47:08

标签: javascript typescript

我有以下代码,我试图用名为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实例吗?

1 个答案:

答案 0 :(得分:1)

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

<小时/> 至于选择是否使用static归结为如何使用该对象。你有多个对象实例,但只需要一份副本吗?如果是,请使用static

这意味着你的所有模态将被链接在一起,并且总是只有一个。

Using static in javascript

  

静态函数(即函数no只有一个副本   无论你创建多少个对象,都可以真正方便实用   功能