【问题标题】:How can I access a class variable inside a class function?如何访问类函数中的类变量?
【发布时间】:2012-11-04 03:04:22
【问题描述】:

我有以下代码,我尝试用一​​个名为 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 的新实例?

【问题讨论】:

  • 你不应该把 this 添加到链接吗? this.link
  • @Kao - 谢谢你是正确的。至于我的问题的第二部分。将其设为静态类有什么好处吗?

标签: javascript typescript


【解决方案1】:

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


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

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

Using static in javascript

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

【讨论】:

    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多