gpt4 book ai didi

javascript - 'this' 的值是多少?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:00 25 4
gpt4 key购买 nike

我试图理解下面的代码:

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 的位),它定义了 this 在评估计算的可观察量时的值。如果不传入它,就不可能引用 this.firstName() 或 this.lastName()。经验丰富的 JavaScript 编码人员会认为这是显而易见的,但如果您仍在了解 JavaScript,这可能看起来很奇怪。 (像 C# 和 Java 这样的语言从不期望程序员为此设置一个值,但 JavaScript 会这样做,因为默认情况下它的函数本身不属于任何对象。)”

“这是”页面对象吗?

最佳答案

很高兴您提出这个问题。我喜欢认为自己是一个相当有经验的 js 程序员,但当我在 knockout js 文档中看到这个时,我仍然做了双重考虑。

Why set thistype to this?

当调用外部函数时,您可能仍想访问 this 所指的对象。通过将 this 保存到父函数中的变量,可以使用闭包。

我能想到的最好的例子是 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();
};

Is 'this' the page object ?

正如其他人所指出的,有很多 documentation关于 this 关键字。

关于javascript - 'this' 的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com