Javascript权威指南(函数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript权威指南(函数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1989字,纯文字阅读大概需要3分钟。
内容图文
![Javascript权威指南(函数)](/upload/InfoBanner/zyjiaocheng/1161/ac23d8ce723649658ed02f9c57c5efd6.jpg)
任何函数只要作为方法调用实际上都会传入一个隐式的实参,这个实参是一个对象,方法调用的母体就是这个对象。
函数的参数(实参和形参)
1、可选参数
当调用函数的时候传入的实参比函数声明时指定的形参个数要少,剩下的形参都将设置为undefined
function getPropertyName(o, /*optional*/a) { if(!a) a = [] // 相当于a = a || [] for(var property in o) a.push(property) return a } var a = getPropertyName(o) //将o的属性存储到一个新数组中 get PropertyNames(p, a) //将p的属性追加至数组a中
2、可变长的实参列表:实参对象(不定实参函数)
在函数体内,标识符arguments是指向实参对象的引用,实参对象是一个类数组对象,这样可以通过数字下标就能访问传入函数的实参值,而不是非要通过名字来得到实参,arguments有个length属性
实参对象的个数获取
function f(x, y, z) { if(arguments.lenght != 3) { //抛出异常,并做异常的处理 } //再执行函数的其他逻辑 }
3、callee和caller属性
callee属性在某些时候会非常有用,比如在匿名函数中通过callee来递归地调用自身
var factoral = function(x) { if(x <= 1) return 1 return x * arguments.callee(--x) }
4、闭包
关于闭包的理解
function counter() { var n = 0 return { count: function() {return n++} reset: function() {n = 0} } } //以下c和d是不会互相影响的var c = counter(), d = counter() c.count() // =>0 d.count() // => 0 c.reset() // reset()和count()共享状态 c.count() // =>0 因为c被重置了 d.count() // =>1 d没有被重置,所以d的count结果还是1
5、函数属性、方法和构造函数
1、length属性
2、prototype属性
3、call()方法和apply()方法
apply()方法和call()类似,但是传入实参的形式和call()有所不同,它的实参都放入一个数组中
function trace(o, m) { var original = o[m] o[m] = function() { console.log(new Date() , "Entering", m) var result = original.apply(this, arguments) console.log(new Date(), "Exiting", m) return result } }
4、bind()方法
5、toString()方法
6、可调用的对象
6、函数式编程
可以使用方法map()和reduce()来实现数组的计算
var sum = function(x, y) {return x + y} var square = function(x){return x * x} var data = [1,1,3,5,5] var mean = data.reduce(sum)/data.length var deviations = data.map(function(x) {return x - mean}) var stddev = Math.sqrt(deviations.map(square).reduce(sum)/(data.length - 1))
7、高阶函数
所谓高阶函数,就是操作函数的函数,它接收一个或多个函数作为参数,并返回一个新函数
function not (f) { return function () { var result = f.apply(this,arguments) return !result } } var even = function(x) { return x % 2 === 0 } var odd = not(even) [1,1,3,5,5].every(odd) ; //true , 每个元素都是奇数
原文:https://www.cnblogs.com/jun-web/p/function.html
内容总结
以上是互联网集市为您收集整理的Javascript权威指南(函数)全部内容,希望文章能够帮你解决Javascript权威指南(函数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。