我有以下代码,我试图用名为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实例吗?
答案 0 :(得分:1)
您需要在调用中添加this
,因为您需要访问类范围。
static
归结为如何使用该对象。你有多个对象实例,但只需要一份副本吗?如果是,请使用static
。
这意味着你的所有模态将被链接在一起,并且总是只有一个。
静态函数(即函数no只有一个副本 无论你创建多少个对象,都可以真正方便实用 功能