Javascript '的价值是什么;这个';?
我试图理解以下代码:Javascript '的价值是什么;这个';?,javascript,knockout.js,Javascript,Knockout.js,我试图理解以下代码: var MyModel = function (folders) { var thisType = this; this.callType = ko.computed({ read: function () { return "openLink"; }, owner: this }); 为什么要将“thisType”设置为“this” 正在阅读 “管理‘这’ 如果您想知道ko
var MyModel = function (folders) {
var thisType = this;
this.callType = ko.computed({
read: function () {
return "openLink";
},
owner: this
});
为什么要将“thisType”设置为“this”
正在阅读
“管理‘这’
如果您想知道ko.computed的第二个参数是什么(我们在前面的代码中传递这个参数的位),它在计算计算的可观测值时定义了这个值。如果不传入它,就不可能引用this.firstName()或this.lastName()。有经验的JavaScript程序员会认为这是显而易见的,但如果你仍然了解JavaScript,这可能会显得很奇怪。(像C#和Java这样的语言从来不希望程序员为此设置值,但JavaScript会,因为默认情况下,它的函数本身不是任何对象的一部分。)
“this”是页面对象吗?在JS中,这是指上下文执行 我喜欢以下摘录: 在JavaScript中,这总是指我们正在使用的函数的“所有者” 执行,或者更确切地说,对函数作为方法的对象执行。 当我们在页面中定义忠实的函数doSomething()时 所有者是页面,或者更确切地说,是的窗口对象(或全局对象) JavaScript。不过,onclick属性属于HTML元素 它属于我
因此,在您的示例中,这将在实例化时具有MyModel上下文的值 我很高兴你问了这个问题。 我喜欢认为自己是一个相当有经验的js程序员,但当我在淘汰赛js文档中遇到这一点时,我还是加倍考虑了 为什么要将此类型设置为此 调用外部函数时,您可能仍希望访问此引用的对象。利用闭包,可通过将
此
保存到父函数中的变量来实现
我能想到的最好的例子是onclick事件
<div id="test">content</div>
document.getElementById("test").onclick = function(e){
var self = this;
function test(){
alert(this); //[object Window]
alert(self); //[object HTMLDivElement]
}
test();
};
内容
document.getElementById(“测试”).onclick=函数(e){
var self=这个;
功能测试(){
警报(此);//[对象窗口]
警报(自身);//[object HtmlLevel]
}
test();
};
“this”是页面对象吗
正如其他人所指出的,关于这个关键字有很多问题。可能这个变量在下面的某个地方使用过……向我们展示整个代码!如果没有,你可以省略它。是指“上下文”的特殊关键字,取决于函数的调用方式。例如,在
new MyModel()
中,它将是一个实例。它的可能重复引用回函数的调用上下文。请在发布前在此搜索SO。下面是一个非常相关的线程JavaScript“this”关键字