【问题标题】:unable to access meteor this when using ecmascript [duplicate]使用 ecmascript 时无法访问流星 [重复]
【发布时间】:2015-11-25 15:00:03
【问题描述】:

当使用带有 ecmascript 箭头符号的流星时,使用“this”访问文档中描述的值总是失败。例如:

 Template.temp.onCreated(()=> {
      this.var = new ReactiveVar("")
 })

然后通过以下方式访问它:

 Template.instance().var

总是失败。这在流星、客户端或服务器端几乎任何使用“this”的情况下都是一致的。 从客户端检查时,我可以看到“this”被编译成“_this”,这总是导致代码失败。

代码编译成:

 _this = this
 Template.temp.onCreated(function() {
      _this.var = new ReactiveVar("")
 })

感谢任何建议。

【问题讨论】:

    标签: scope this ecmascript-6 arrow-functions


    【解决方案1】:

    这是因为箭头函数在创建时就绑定到了作用域。在您的情况下,在创建时范围是全局的,因此您的函数的范围是全局范围。

    总之,这种行为是设计正确的。

    你不应该在不合适的时候使用箭头函数。节省输入几个字符的时间不仅仅是“速记”。

    【讨论】:

    • 感谢您的澄清,我认为这是一个编译器错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多