使用关键字“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的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中使用“that”关键字[重复]

You Don't Know JS: this & Object Prototypes( 第一章 this or That?)

js下的this都有哪些用法

javascript 之 第七章第三节(this关键字)

小程序This和That用法

在 Knock (rails) 中验证用 RS256 签名的 JWT 令牌