为了账号安全,请及时绑定邮箱和手机立即绑定

函数调用问题

函数调用问题

Youruncle 2017-01-12 20:39:22
function game(){ init(); lastTime=Date.now(); deltaTime=0; gameloop();}请问两者之间有什么区别?game();game;
查看完整描述

3 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

game(); 这样是一个函数调用语句,是执行这个函数。

game;这其实并不是一个完整得语句,但是他不会报错,因为他本身就代表game这个函数。我们做一个测试,我最喜欢用代码来证明:

function game(){
	console.log("gaming..");
}
game();        //注1
game;          //注2
var x = game;  //注3
x();           //注4
console.log(x == game);  //注5

我分别来讲解一下:

注1:直接调用game();这个函数,控制台输出:gaming..

注2:这句不会执行,但是不回抛出异常,控制台没有输出。

注3:这里声明一个变量x将game赋值给x。

注4:调用x函数,控制台输出:gaming..,由此看到game这个函数名可以理解为函数得一个指针。

注5:控制台输出:true,可以看到x变量指向game函数。

查看完整回答
1 反对 回复 2017-01-13
?
peterJS

TA贡献6条经验 获得超1个赞

函数名是一个指针,它指向堆内存中保存该函数代码块的内存空间,()是可以理解成函数执行的标志位,函数名后面带上小括号表示执行函数名指向内存空间中的这段代码,如果不带小括号就是一个简单的指针不会执行它指向的代码块,希望这样解释你能够理解!
查看完整回答
反对 回复 2017-01-12
?
拿不到钥匙的车放不进手机的歌

TA贡献71条经验 获得超29个赞


据我说知 game()表示调用函数,game表示调用结果

查看完整回答
反对 回复 2017-01-12
  • 3 回答
  • 0 关注
  • 1448 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信