javascript - `this.function()` 和 `function.call(this)` 之间有区别吗?
问题描述
阅读本教程后,我想我对如何使用 call 和 apply 有所了解。但是,我仍然有点困惑。
有没有使用function.call(this, arguments)
与使用不同的this.function(arguments)
情况?
如果不是,那我们为什么需要这个call
功能?
解决方案
const person = {
name: "Bob",
greet: function() { console.log("Hello " + this.name) }
};
const thank = function() {
console.log("Thanks " + this.name);
}
person.greet()
与 相同person.greet.call(person)
,但第一个更简洁,所以这就是存在此变体的原因。
call
当函数不是对象的成员时,函数很有用。你不能打电话person.thank()
,你必须打电话thank.call(person)
。
推荐阅读
- flutter - 有没有办法为 CupertinoApp 实现 debugShowMaterialGrid?
- c++ - C++:对引用的引用,Stroustrup 示例
- azure - 从 Azure Cloud Function 调用 CosmosDB 服务器
- neo4j - Neo4j APOC 无法通过 OSI PI JDBC 进行身份验证
- php - Laravel Auth::user()->name 和 Auth::user()->id 不起作用
- sql - Power BI 中的 SQL 停止和数据建模从哪里开始?
- amazon-web-services - 在 AWS DynamoDB 中,应如何构建查询格式以发送具有“大于”条件的调用?
- c# - 在 MVVM WPF 中将一个模型连接到多个 ViewModel
- java - java.lang.ClassNotFoundException: com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier$Builder
- javascript - JQuery用替换功能擦除字段内容