gpt4 book ai didi

javascript - 您应该使用 "this"还是直接引用 javascript 中的父对象?

转载 作者:行者123 更新时间:2023-12-01 00:56:39 24 4
gpt4 key购买 nike

在我的程序中,有些情况下您可以使用“this”或直接引用父对象(我们称之为 Parent)来执行相同的功能。

let Parent = {};

Parent.func = function (foo) {
this.bar = foo; // option 1
Parent.bar = foo; // option 2
}

是否有任何理由(也许是效率或只是代码约定)使用其中一个选项而不是另一个?

例如,“this”关键字的引用时间是否比 Parent 多/少,还是可以忽略不计?或者人们通常是否认为在示例中使用“this”(例如给出的示例)是不好的做法或难以阅读(或相反)?

最佳答案

使用 this 的一个原因是它更具可组合性 - 如果需要,可以在 Parent 以外的对象上调用它,并表示灵 active 作为一种选择可能很有用。例如:

let Parent = {};

Parent.func = function (foo) {
this.bar = foo;
}

const parentLikeObject = {};
Parent.func.call(parentLikeObject, 'parentLikeFoo');
console.log(parentLikeObject);

如果您在 .func 中引用 Parent 而不是 this,这种事情是不可能的。

引用调用函数的对象(this)是一种非常常见的模式,它允许更多可重用的代码。例如,在不支持 NodeList.prototype.forEach 的旧版浏览器上,forEach 可以在 NodeList 上使用:

Array.prototype.forEach.call(
document.querySelectorAll('div'),
div => console.log(div.textContent)
);
<div>foo</div>
<div>bar</div>

不完全一样,因为那是原型(prototype)上的方法,但总体思路是相似的。

关于javascript - 您应该使用 "this"还是直接引用 javascript 中的父对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56525391/

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