`
2008winstar
  • 浏览: 57780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • chenke: 写的很好,也可以看看那这个文章,我感觉学的还可以。http:/ ...
    HTML

JavaScript之函数

阅读更多

在JavaScript中,函数是“第一等公民“,意味着函数可以像其它类型的数据一样,作为其它函数的参数,或者作为其它函数的返回值(也就是说函数可以返回函数)。

 

函数的原型对象:Function.prototype,它是一个函数,在函数上可以使用call,apply方法。

 

Function.prototype.call

一个函数的call()方法接收两类参数,第一类参数是指定上下文的this变量;第二类是调用函数自身所需的参数,该类参数若有多个的话则已逗号分隔。

 

Function.prototype.apply

函数的apply()方法与call()方法类似,它接收两个参数,第一个参数也是指定上下文的this变量;第二个是一个数组,该数组由调用函数自身所需的参数组成。

 

通过上面call和apply的描述,可发现其异同之处:相同的是它们都可以在调用函数的时候修改函数的上下文this指向;不同的是提供参数的方式不同。

 

JavaScript的函数中还包含这一个特殊的对象arguments,它是一个类数组对象。

类数组,它具有length属性,可以借助其length属性来遍历函数所接收到的所有参数;不过也就仅此而已,它不是真正的数组,无法在arguments上调用其他数组所具有的方法,当然了如果将其转换为真正的数组后,数组方法对它也是适用的。

arguments这个类数组对象的内容大致如下:

['param1', 'param2', 'param3', 'length', 'callee']

 

它的前半段元素由函数接收到的参数组成,除此之外还有两个元素,一个是length属性,arguments.length表示函数当前接收到的参数个数;arguments.callee提供了调用当前函数的函数引用,但现在不建议使用了。

 

 

前面涉及到了函数调用时的上下文this变量,这个this总是在函数被调用的时候基于调用者调用它的方式设置的。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics