apply call区别
时间: 2023-08-09 18:04:53 浏览: 40
在Python中,apply和call都是用于调用函数的方法。
apply函数在Python 2.x版本中存在,而在Python 3.x版本中已经被废弃。它接受一个函数和一个元组作为参数,元组中包含函数的参数。例如:
```python
def add(a, b):
return a + b
result = apply(add, (2, 3))
print(result) # 5
```
上述代码使用apply调用了add函数,并传递了一个元组(2, 3)作为参数,最终返回结果5。
而call函数则是在Python中调用函数的另一种方式。它接受一个函数和任意个参数作为参数,并将这些参数传递给函数。例如:
```python
def add(a, b):
return a + b
result = add.call(2, 3)
print(result) # 5
```
上述代码使用call调用了add函数,并传递了两个参数2和3,最终返回结果5。
需要注意的是,在Python 3.x版本中,已经没有apply函数了,只能使用call或直接调用函数来传递参数。
相关问题
call apply bind 区别
call、apply、bind 都是 JavaScript 中用来改变函数执行上下文的方法。它们的主要区别在于传递参数的方式和返回值。
call 和 apply 都是立即执行函数,调用函数的同时改变函数执行的上下文,而 bind 则是返回一个新的函数,后续可以调用这个新的函数并改变函数执行的上下文。
call 和 apply 传递的参数方式不同,call 接受的是参数列表,apply 接收的是一个数组;bind 则支持传递参数列表,后续调用可再传入参数。
call 和 apply 都会立即执行函数并返回执行结果,而 bind 返回一个新的函数,需要再次调用才会执行。
举个例子:
```
var obj = {
name: 'Tom'
};
function sayHi(age) {
console.log(`Hi, my name is ${this.name}, I'm ${age} years old.`);
}
sayHi.call(obj, 18); // Hi, my name is Tom, I'm 18 years old.
sayHi.apply(obj, [18]); // Hi, my name is Tom, I'm 18 years old.
var sayHiBinded = sayHi.bind(obj, 18);
sayHiBinded(); // Hi, my name is Tom, I'm 18 years old.
```
call apply区别
`call` 和 `apply` 都是 JavaScript 中用来调用函数的方法,它们的作用是在特定的作用域中调用函数。
它们的区别在于传参的方式不同:
`call` 方法将参数作为一个一个的参数传递给函数,比如 `function.call(thisArg, arg1, arg2, ...)`。
`apply` 方法将参数作为一个数组(或类数组对象)传递给函数,比如 `function.apply(thisArg, [arg1, arg2, ...])`。
除了传参方式不同之外,它们的作用是相同的,都是改变函数的 this 指向,让其在指定的作用域中执行。