您的位置:首页 > Web前端 > JavaScript

【JavaScript】基础整理——函数调用相关

2017-04-29 11:21 260 查看
       看到李老师讲的关于对象和数组这部分视频,对其中的函数声明和调用部分非常感兴趣。

声明

常规

function ObjTest()
{
return ('小实验:常规的函数声明方式');
}

匿名

run:function()
{
return ('匿名函数的声明形式');
}


       声明这部分,听到老师讲到了除了常规外的另一种声明方法:匿名函数。匿名函数就是没有名字的函数,要理解匿名函数,还需要搞懂一个闭包的概念。网上搜了一下关于闭包的概念,只是大概了解了下,对于原理和使用还是一脸懵逼的。所以这里就给大家推荐篇比较不错的博客对JAVASCRIPT匿名函数的理解(透彻版),如果有大神路过,也请大神慷慨指点有关闭包和匿名函数一二,不胜感激~~

调用

       调用的话看着老师的小栗子,觉得非常有趣然后就自己逐一尝试了下。

First

function ObjDemo()
{
return ('some types of function call');
}

var box={
run:function(){
return ObjDemo();
}
}
alert(box.run());
       很明显,这种书写方式可以成功实现功能。

Second

1
function ObjDemo()
{
return ('some types of function call');
}

var box={
run:function(){
run =ObjDemo();
}
}
alert(box.run());


2
function ObjDemo()
{
return ('some types of function call');
}

var box={
run:function(){
run =ObjDemo;
}
}
alert(box.run());
       上面这两种情况暴露出来的都是同一种问题:简单的通过赋值运算即想实现函数的调用。1的下发还靠谱点,带这个小括号;2就干脆小括号也扔了。总而言之,在我认为:不能通过赋值运算实现函数的调用。

THird

function ObjDemo()
{
return ('some types of function call');
}

var box={
run:function(){
return ObjDemo;
}
}
alert(box.run());


效果



       想了想这种写法,应该也不算是出错了,得看你想实现的功能是调用函数还是打印出来函数。上面这个demo没有书写小括号,所以就把需要调用的函数的函数体整个打印了出来。

总结

       以前从来没有系统思考过函数调用的问题,只是知道return,对其他的一概不知。现在通过李老师的视频,觉得对函数调用的理解更加清晰了。
感谢您的宝贵时间,祝生活愉快,谢谢~~
                                                                         ——书生
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: