【发布时间】:2013-05-13 11:46:19
【问题描述】:
我正在尝试理解以下代码:
var MyModel = function (folders) {
var thisType = this;
this.callType = ko.computed({
read: function () {
return "openLink";
},
owner: this
});
为什么将 'thisType' 设置为 'this' ?
在http://knockoutjs.com/documentation/computedObservables.html阅读文档
“管理‘这个’ 如果您想知道 ko.computed 的第二个参数是什么(我们在前面的代码中传递 this 的位),它在计算计算的 observable 时定义了 this 的值。如果不传入它,就不可能引用 this.firstName() 或 this.lastName()。经验丰富的 JavaScript 编码人员会认为这是显而易见的,但如果您仍在了解 JavaScript,这可能会显得很奇怪。 (像 C# 和 Java 这样的语言从不期望程序员为此设置一个值,但 JavaScript 会,因为默认情况下,它的函数本身不属于任何对象。)"
'this' 是页面对象吗?
【问题讨论】:
-
这个变量可能在下面的某个地方被使用了……向我们展示整个代码!如果没有,你可以省略它。
-
this是指“上下文”的特殊关键字,取决于函数的调用方式。在new MyModel()中,它将是实例。 -
this 指向函数的调用上下文。请在发布前在 SO 上进行搜索。这是一个非常相关的线程JavaScript“this”关键字