如何在 JavaScript 中使用调用、应用和绑定
JavaScript call()、apply() 和 bind() 在 Web 开发面试中很有可能出现。准备好了吗?
在练习 JavaScript 时,您可能遇到过各种内置函数,例如数组和字符串的函数。虽然您可能会在日常编程任务中使用这些更常见的方法,但其他方法也可用于特殊目的。JavaScript 的 call()、apply()、和 bind() 是一些此类方法,它们有其特殊的用例,通常用于在编码面试中测试您的 JavaScript 知识。让我们仔细看看如何使用它们。
1. 调用()
call() 允许为另一个对象分配和调用属于一个对象的函数或方法。您可以使用 this 关键字引用对象的值。
查看这个 call() 示例。
let obj = {
name:"John",
surname:"Doe",
getFullName: function(){
console.log(this.name+" "+this.surname);
}
}
obj.getFullName();对象 obj 有一个名为 getFullName() 的函数,用于打印人的全名。现在,如果您想将 getFullName() 与具有不同值的不同对象一起使用,则可以使用 call() 函数来实现。
const obj2 = {
name:"Jane",
surname:"Doe"
}
obj.getFullName.call(obj2);
您还可以在 call() 函数中与对象一起传递不同的参数。
let obj = {
name:"John",
surname:"Doe",
getFullName: function(age, gender){
console.log(this.name+" "+this.surname+" "+age+" "+gender);
}
obj.getFullName.call(obj2, 21, "female");
2.申请()
apply() 函数的工作方式与 call() 函数类似。 call() 和 apply() 函数之间的唯一区别是您可以在数组中传递多个参数并使用它们。
这是一个 apply() 示例:
const obj = {
name:"John",
surname:"Doe",
getFullName: function(age, gender){
console.log(this.name+" "+this.surname+" "+age+" "+gender);
}
}
obj.getFullName.apply(obj2, [21, "female"]);
3. 绑定()
bind() 返回函数的精确副本并将其与对象绑定。该方法用于绑定并保留方法的副本以供以后使用。您可以随时通过调用来使用该函数。
这是一个 bind() 示例:
const obj = {
name:"John",
surname:"Jane",
getFullName: function(){
console.log(this.name+this.surname);
}
}
const obj2 = {
name:"Jane",
surname:"Doe"
}
let func = obj.getFullName.bind(obj2);
func();永远不要停止学习 JavaScript
在准备 JavaScript 面试时,call()、apply() 和 bind() 函数非常重要。 JavaScript 中还有无数其他核心概念,您应该掌握这些概念才能成为最高效的程序员;为什么不从数组方法开始呢?
