淘汰教程 - "这个"财产约束?

时间:2016-10-10 12:42:46

标签: function knockout.js properties this bind

这些来自knockoutjs.com教程。

任何人都可以解释这个"这个"在fullName属性的末尾吗?请在此处提及JS原则,以便我可以进一步阅读,谢谢!

enter image description here

为什么totalSurcharge属性不需要"这个"最后?

enter image description here

1 个答案:

答案 0 :(得分:3)

当执行确定计算值(第一个arg)的函数时,ko.computed的第二个参数设置this的值。在fullName案例中,该函数使用this.firstNamethis.lastName。因此,无论何时调用它,我们都希望确保this确实是我们的视图模型。

在第二种情况下,创建了一个名为self的变量,该变量指向this的适当值。然后,self在计算的函数内使用,而不是使用this(动态)。在第二种情况下,self可以作为第二个参数,然后this可以在函数内部使用。

这真的是一种风格问题。在我看来,像self这样的变量的使用近来已经不合时宜了。最后,归结为个人偏好。

以下是另一个在KO中讨论this的答案:Difference between knockout View Models declared as object literals vs functions

JavaScript中this的优秀教程:https://derickbailey.com/email-courses/masteringthis/