请问JS中掉用函数的时候,什么情况带括号,什么情况不带? 5

请问JS中掉用函数的时候,什么情况带括号,什么情况不带?请问例1中最后一行alert(cal(increase,1));中,increase是否应该带括号,写成alert... 请问JS中掉用函数的时候,什么情况带括号,什么情况不带?
请问例1中最后一行alert(cal(increase, 1));中,increase是否应该带括号,写成alert(cal(increase(), 1));才符合JS的语法?JS在调用函数的时候不是都必须带括号吗?就像例2alert(haha());一样?

例1
function cal(func, num){
return func(num)
}
function increase(num){
return num+1
}
alert(cal(increase, 1));

例2
function haha(){
return 'okidoki';
}
alert(haha());
document.write(haha());
展开
 我来答
sui159753
2015-01-16 · TA获得超过226个赞
知道小有建树答主
回答量:207
采纳率:100%
帮助的人:132万
展开全部
call 方法
请参阅
应用于:Function 对象
要求
版本 5.5
调用一个对象的一个方法,以另一个对象替换当前对象。

call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

以obj1.method1.call(obj2,argument1,argument2,...)为例:
call方法的调用者:一个对象的方法(在js里面方法/函数也是对象),调用者为,obj1.method1
call方法的参数:一个新对象(obj2),这个对象的作用是“拦截”对象obj1,来运行本来属于obj1的method方法;而 argument1,argument2,...就是给method传递参数了
call方法的结果:obj1.method1.call(obj2,argument1,argument2,...)等价于:
obj2.method1(argument1,argument2,...)
call方法的作用:obj1.method方法得到重用、共享,有new的特效,实现继承
追问
我业余自学...上面的内容实在是我看不懂... ...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式