JS 核心语言基础语法 之 引用类型Function
今天这篇文章,我们来说说引用类型中的Fuction。在说Function之前,简单说一嘴RegExp,就是正则表达式啦,关于正则表达式,我也没有仔细研究过,每次有需求,需要使用的时候,就找度娘查一查,会用就行,偶尔也会根据需求自己简单改一改,所以说我就是会简单使用,有兴趣的同学可以自己研究下~,还是说回此文重点,function,function是啥,顾名思义函数嘛,在我的理解力,函数就是用来实现某些功能的代码块,我们把一个功能整理好放在一个函数里,并给这个函数取个名字,当我们需要使用这个函数的时候,就直接调用它就可以了,而且,可以实现哪里需要哪里调用,会很方便。
下面我们结合思维导图,看看函数,我们需要了解的知识有哪些喽
我们按照思维导图的顺利缕着说啊,先来说函数的创建方式,函数的创建方式一共有五种:
函数声明方式:
function name(args){ //运行代码 };
2.函数表达式
var a = function(args){ //运行代码 }
3.命名函数表达式(很少使用)
var a = function b(args){ //运行代码 }
4.箭头函数
(arg) => { //运行代码 }
5.函数生成器
function *(){ //运行代码 }
6.构造函数器
new Function()
以上是创建函数的方式,记住怎么写,能创建就可以啦,具体各个方式的区别,我有时间的时候,整理出来,再跟大家分享。
下面说一个概念,叫自执行函数,看名字理解哈,就是函数不用调用,自己就会执行,也许大家看到过别的的代码,会用小括号括起来的啊,有各种特殊符号的啊,具体看我上面的导图,这些都是自执行函数的写法,大家看到知道并且会用就行了,图中自执行函数的写法,已经是按性能排序之后的啦。
函数的属性主要是length和prototype,length是函数定义时给出的参数个数:
function name(a, b, c){ console.info(arguments.length) }; console.info(name.length); // 3
至于prototype,它是一个指针,指向的是函数的原型对象,这个对象十分重要,而且还有点复杂,在基础知识里,就先不说了,后面在讲到面向对象的知识的时候,我们再来学习这个属性。
最后,本文要说的是函数的方法,apply()、call()、bind()。
先来说apply和call,为啥要把他俩放一起呢,因为他俩其实实现的功能是相同的,都可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下
文改变为由thisObj指定的新对象。
不同点呢是传入参数的形式不同:
apply接受两个参数,第一个参数指定了函数体内this对象的指向,第二个参数为一个数组,B.apply(A, arguments);即A对象应用B对象的方法。
call可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表,B.call(A, args1,args2);即A对象调用B对象的方法。
二者的等价写法是:foo.call(this,arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)
而bind是用来指定函数内部的this指向用的,对于apply、call和bind的具体用法,请移驾我博客园的博文(这里我就不把相关内容移植到本文了,免得又被判定为抄袭,哈哈)
文章地址:https://www.cnblogs.com/jiangtengteng/p/9667769.html
寄语共勉:有种力量叫放大目标,有种智慧叫把问题缩小,我们的终极目标是学好JavaScript,小目标是尽量掌握好每个小知识点~
拜拜喽各位~
- 点赞
- 收藏
- 关注作者
评论(0)