JavaScript权威指南.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScript权威指南

JavaScript权威指南 - 函数 函数本身就是一段JavaScript代码,定义一次但可能被调用任意次。如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法。用于初始化一个新创建的对象的函数被称作构造函数。 相对于其他面向对象语言,在JavaScript中的函数是特殊的,函数即是对象。JavaScript可以把函数赋值给变量,或者作为参数传递给其他函数,甚至可以给它们设置属性等。 JavaScript的函数可以嵌套在其他函数中定义,这样定义的函数就可以访问它们外层函数中的任何变量。这也就是所谓的“闭包”,它可以给JavaScript带来强劲的编程能力。 1.函数定义 函数使用function关键字定义,有函数语句和函数表达式两种定义方式。 //一.函数语句类: //打印对象所有属性名称和值。 function printprops(obj) { for (var key in obj) { console.log(key + : + obj[key]); } } //计算阶乘的递归函数,函数名称将成为函数内部的一个局部变量。 function factorial(n) { if (n = 1) return 1; return n * factorial(n); } //二.函数表达式类: //计算n的平方的函数表达式。这里将一个函数赋给一个变量。 var square = function (x) { return x * x; } //兔子数列。函数表达式也可以包含名称,方便递归。 var foo = function foo(n) { if (n = 1) return 1; else foo(n - 1) + foo(n - 2); } //数组元素升序排列。函数表达式也能作为参数传递给其他函数。 var data = [5, 3, 7, 2, 1]; data.sort(function (a, b) { return a - b; }); //函数表达式有时定义后立即调用。 var tensquared = (function (x) { return x * x; }(10)); 函数命名 函数名称要求简洁、描述性强,因为这样可以极大改善代码的可读性,方便别人维护代码;函数名称通常是动词或以动词开头的词组。通常来说,函数名编写有两种约定: 一种约定是函数名第一个单词首字母小写,后续单词首字母大写,就像likeThis(); 当函数名包含多个单词时,另一种约定是用下划线来分割单词,就像like_this()。 项目中编写方法名时尽量选择一种保持代码风格一致。还有,对于一些私有函数(不作为公用API的一部分),这种函数通常以一条下划线作为前辍。 2.函数调用 函数声明后需要通过调用才能被执行。JavaScript中通常有4种方式来调用函数: 作为普通函数; 作为对象方法; 作为构造函数; 通过它们的call()和apply()方法间接调用。 下面就通过一些具体示例来演示上述4中函数的调用方式。 1.对于普通函数,通过调用表达式就可直接调用,这种方式很直接也很常见。 //定义一个普通函数。 var strict = function () { return !this; }; //检测当前运行环境是否为严格模式。 //通过函数名直接调用。 console.log(strict()); 注:根据ES3和非严格的ES5对普通函数调用的规定,调用上下文(this)是全局对象;在严格模式下,调用上下文则是undefined。 2.通常,保存在对象属性里的JavaScript函数被称作“方法”。 //定义一个对象直接量。 var calc = { a: null, b: null, add: function () { //将函数保存在对象属性中。 return this.a + this.b; } }; //通过对象名调用方法。 calc.a = 1, calc.b = 2; console.log(calc.add()); 注:对象方法中的调用上下文(this)不同于普通函数中的上下文。这里this指代当前对象。 方法链:当方法返回值是一个对象,那么这个对象还可以再调用它的方法。每次调用的结果都是另外一个表达式的组成部分,这种方法调用方式最终会形成一个序列,也被称为“方法链”。所以,在自己设计API的时候,当方法并不需要返回值时,最好直接返回this。这样以后使用API就可以进行“链式调用”风格的编程。 需要注意的是,this是一个关键字,Javas

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档