js中call的用法
call 要领允许函数在指定工具的上下文中执行,用于:(1)更改函数的 this 绑定;(2)转达特殊参数;(3)模拟继续,建设一个新工具并继续另一个工具的属性和要领。
call 要领在 JavaScript 中的用法
界说:
call 要领允许一个函数在指定的工具(thisArg)上下文中被挪用,纵然该函数最初不是绑定到该工具。
语法:
function.call(thisArg, arg1, arg2, ...)
登录后复制
其中:
function:要挪用的函数。
thisArg:指定函数执行时 this 要害字所绑定的工具。
arg1, arg2, …:要转达给函数的参数。
用法:
更改函数的执行上下文:
call 要领可以用来更改函数的执行上下文,即 this 要害字所绑定的工具。这在需要在差别工具间共享要领的情形下很是有用。
例如:
const person1 = { name: "John" }; const person2 = { name: "Jane" }; function greet() { console.log(`Hello, ${this.name}!`); } // 使用 call 更改执行上下文 greet.call(person1); // 输出:"Hello, John!" greet.call(person2); // 输出:"Hello, Jane!"
登录后复制
转达特殊参数:
call 要领还可以用来转达特殊参数给函数。这在需要向函数动态转达参数的情形下很是有用。
例如:
function addNumbers(a, b) { return a + b; } // 使用 call 转达特殊参数 const result = addNumbers.call(null, 1, 2, 3); // 输出:6
登录后复制
模拟继续:
call 要领可以用来模拟继续,即建设一个新工具并继续另一个工具的属性和要领。
例如:
const Parent = function (name) { this.name = name; }; Parent.prototype.greet = function () { console.log(`Hello, ${this.name}!`); }; const Child = function (name) { Parent.call(this, name); // 挪用父类结构函数 }; // 继续父类要领 Child.prototype = Object.create(Parent.prototype); const child = new Child("John"); child.greet(); // 输出:"Hello, John!"
登录后复制
注重:
call 要领只会更改函数的执行上下文,不会永世绑定该函数到指定的工具。
关于箭头函数,call 要领不起作用。
以上就是js中call的用法的详细内容,更多请关注本网内其它相关文章!
免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考。本文接待转载,转载请说明来由。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除。