gpt4 book ai didi

Javascript调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:55 24 4
gpt4 key购买 nike

我最近一直在测试一些代码,试图更好地理解 javascript。然后我遇到了 call() 函数,我无法很好地理解它。

我有以下代码:

function hi(){
console.log("hi");
}

var bye = function(param, param2){
console.log(param);
console.log(param2);
console.log("bye");
}

如果我调用 bye.call(hi(), 1, 2),我会得到 hi 1 2 undefined

如果我调用 bye.cal(1,2),我会得到 2 undefined bye undefined

据我所知,call() 函数的第一个参数必须是一个函数,然后是我的bye 函数接受的参数数量。但是最后一个 undefined 是从哪里来的呢?

最佳答案

第一个参数不一定是函数。第一个参数是在函数调用的上下文中将“this”变量设置为的对象。

var bye = function(param, param2){
console.log(param);
console.log(param2);
console.log("bye");
console.log(this.x)
}

t = {'x': 1};

bye.call(t, 1, 2);

并且控制台应该显示:1、2、“再见”和 1。

undefined 是函数的返回值。

在您的第一次通话中:

bye.call(hi(), 1, 2)

你正在调用 hi()(所以它会打印 'hi'),返回值没有被使用,1 和 2 是要 bye 的参数。

在你的第二次通话中:

bye.cal(1,2)

1 分配给这个。 2为param,param2未定义。

关于Javascript调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com