javascript调用函数加不加括号的区别

直接po图和代码

参考文章(JS调用函数加不加括号的区别)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javascript调用函数加不加括号的区别</title>
<script type="text/javascript">

	// window.onload = function1; //会执行function1函数
	// window.onload = function1(); //会执行function1函数

	// window.onload = fun1; //不会执行function1函数

	function function1() {
		console.log("我是函数1");
	}

// 	var fun1 = function1(); //会执行function1函数
	
// 	console.log(fun1); //结果为undefined

	var fun1 = function1; //不会执行function1函数


	// window.onload = fun1; //会执行function1函数

// 	window.onload = fun1(); //会执行function1函数

	var myFunc = function() {
		console.log("我是匿名函数");
	};

// 		window.onload = myFunc(); //会执行匿名函数
		window.onload = myFunc; //会执行匿名函数
	
// 	window.onload = function(){//等同于window.onload=myFunc;
// 		console.log("我是匿名函数");
// 	}
	

// 	myFunc;//不会执行匿名函数
// 	myFunc();//会执行匿名函数
	
	function fun2() {
		var address = '江西省赣州市于都县';
		console.log("我的家乡在" + address);
		return '哈哈哈' + address;
	}
	
	//不带()小括号,获取方法内容
	alert(fun2);
	
	//带()小括号,调用方法执行
	fun2();
	
	//带()括号,获取方法返回值
	alert(fun2());
	
	//不带()小括号,不会执行方法
	fun2;
	
	//(调用了fun2函数,执行了fun2的函数体,并将fun2函数体中的返回值返回)
	var temp = fun2(); //函数名后面加()括号
	console.log(temp); //temp得到的是fun2函数的返回值
	
	//不会执行fun2函数体,自然不会有函数返回值,而是把函数名称作为函数的指针,把整个函数体传过去,在需要的时候好找到函数体去执行
	temp = fun2; //函数名后面不加()括号
	console.log("" + temp);//打印的是fun2函数的函数声明和函数体
	console.log(temp);
	
	//注意:js中的回调函数都是使用函数引用,所以回调函数是不写括号的
	
	
//看一个回调函数不加括号的例子
/*
xmlhttp.onreadystatechange=callback;
 说明:注册回调函数只用函数名,不加括号,是因为该句只是把回调函数名注册给xmlhttp.onreadystatechange。如
 果加了括号,则是调用函数然后把函数的返回值注册给xmlhttp.onreadystatechange
 
情形一:xmlhttprequest.onreadystatechange= myFunction;//把myFunction函
数作为一个对象赋值给onreadystatechange

情形二:xmlhttprequest.onreadystatechange= myFunction()//把myFunction函数的返回值赋
值给onreadystatechange. 如果它的返回值是个函数的话,当然可以这么用;可一般返回值是一个值

*/
	
</script>
</head>
<body>
<h1 style="color: red;">
javascript调用函数加不加括号的区别
</h1>
</body>
</html>

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值