【问题标题】:knockout.js using keywords "this" and "that"使用关键字“this”和“that”的 knockout.js
【发布时间】:2018-09-19 08:48:24
【问题描述】:

我是新手,正在学习淘汰赛库。我有两个问题。

1) 术语 this 和 that 有什么区别。 2)this.view和that.view是什么意思。

我主要是问这个问题,因为我正在使用 highcharts 并且 renderTo 设置为 that.view,当我将它分配给一个 div 标签时,它在第一次加载时运行良好,如果该图表需要再次加载,它 div标签值不显示图表。但是,它每次都使用 this.view 显示它。

 this.chartHeight = this.view.parentNode.getBoundingClientRect().height
 this.chart = {
                renderTo:    that.view, //'chart-container',
                     };

所以在理解这个的同时,我想知道,this.view和that.view有什么区别。

谢谢

【问题讨论】:

  • “this”是具有特殊含义的语言关键字。 "that" 和其他变量一样只是一个普通变量,并且具有分配给它的任何值。
  • 在不查看其余代码的情况下,无法告诉您“那个”指的是什么;特别是定义“那个”的部分。我们还需要查看“视图”的定义位置。我们只能告诉你'this'的含义:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 顺便说一句,如果您认为“that”在 Knockout 中有一些特殊含义,那不是真的。
  • 似乎that 是父this 视图的子视图...
  • 非常感谢。所有这些赞扬都回答了这个问题。感谢您的帮助。

标签: mvvm knockout.js this viewmodel


【解决方案1】:

因为each function in JavaScript is given its own this value,通常创建一个局部变量来保存this 值,以便嵌入式函数通过闭包访问。通常这个变量被称为self 或有时that_this,但它实际上可以是任何合法的变量名。在 ES6 中,最好使用arrow functions

【讨论】:

  • 如果我回答了您的问题,请接受答案。谢谢
  • 对不起,这是我关于堆栈溢出的第一个问题。我如何接受答案并说它已经完成并关闭它?
猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多