使用关键字“this”和“that”的 knockout.js
Posted
技术标签:
【中文标题】使用关键字“this”和“that”的 knockout.js【英文标题】:knockout.js using keywords "this" and "that" 【发布时间】: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
视图的子视图...
非常感谢。所有这些赞扬都回答了这个问题。感谢您的帮助。
【参考方案1】:
因为each function in JavaScript is given its own this
value,通常创建一个局部变量来保存this
值,以便嵌入式函数通过闭包访问。通常这个变量被称为self
或有时that
或_this
,但它实际上可以是任何合法的变量名。在 ES6 中,最好使用arrow functions。
【讨论】:
如果我回答了您的问题,请接受答案。谢谢 对不起,这是我关于堆栈溢出的第一个问题。我如何接受答案并说它已经完成并关闭它?以上是关于使用关键字“this”和“that”的 knockout.js的主要内容,如果未能解决你的问题,请参考以下文章
You Don't Know JS: this & Object Prototypes( 第一章 this or That?)