首页 > Web开发 > 详细

js 中的call() 方法

时间:2021-04-25 18:49:48      阅读:25      评论:0      收藏:0      [点我收藏+]

this总数指向调用某个方法的对象,都 是使用call() 和apply() 方法时,就会改变this的指向

call.(thisObject, arg1, arg2...)

我们单独说call() , 因为apply() 和call() 差不多,只不过apply第二个参数必须是传入的一个数组,而call 第二个参数可以是任意类型。

 

obj1(method).call(obj2, argument1, argument2)

如上,call的作用就是把obj1的方法放到obj2上使用,后面的argument1... 这些作为参数传入

 function add(x,y){
      return x + y
}
function minus(x,y){
      return x - y
}
console.log(add.call(minus, 1,2));   // 3

 

这个例子中的意思就是用add来替换minus ,  add.call(minus, 1,2) == add(1,2)   

A.call(B, x,y):  就是把A函数放到B中运行, x和y是A方法的函数

用call 来实现继承, 用this可以继承myfunc1 中的所有方法和属性

 

function func1(name) {
this.name = name;
this.sing = function (song) {
  console.log(‘i sing‘, song)
}
}
function func2() {
func1.call(this,‘xiaozhu‘); // func2 通过this继承func1 的属性和方法
}
const func3 = new func2();
console.log(func3)
func3.sing(‘夜空中最亮的星‘); // i sing 夜空中最亮的星
console.log(func3.name); // xiaozhu

 

js 中的call() 方法

原文:https://www.cnblogs.com/yongzhu/p/14701122.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!