1 / 11
文档名称:

JavaScript权威指南.doc

格式:doc   大小:60KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JavaScript权威指南.doc

上传人:63229029 2017/5/29 文件大小:60 KB

下载得到文件列表

JavaScript权威指南.doc

相关文档

文档介绍

文档介绍:JavaScript 权威指南- 函数函数本身就是一段 JavaScript 代码, 定义一次但可能被调用任意次。如果函数挂载在一个对象上, 作为对象的一个属性, 通常这种函数被称作对象的方法。用于初始化一个新创建的对象的函数被称作构造函数。相对于其他面向对象语言,在 JavaScript 中的函数是特殊的,函数即是对象。 JavaScript 可以把函数赋值给变量,或者作为参数传递给其他函数,甚至可以给它们设置属性等。 JavaScript 的函数可以嵌套在其他函数中定义,这样定义的函数就可以访问它们外层函数中的任何变量。这也就是所谓的“闭包”,它可以给 JavaScript 带来强劲的编程能力。 1. 函数定义函数使用 function 关键字定义,有函数语句和函数表达式两种定义方式。//一. 函数语句类: // 打印对象所有属性名称和值。 function printprops(obj) { for (var key in obj) { (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]; (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; }; // 检测当前运行环境是否为严格模式。// 通过函数名直接调用。 (strict()); 注:根据 ES3 和非严格的 ES5 对普通函数调用的规定,调用上下文( this )是全局对象;在严格模式下,调用上下文则是 undefined 。 2. 通常,保存在对象属性里的 JavaScript 函数被称作“方法”。// 定义一个对象直接量。 var calc ={ a: null, b: null, add: function (){ // 将函数保存在对象属性中。 return + ; } }; // 通过对象名调用方法。 = 1, = 2; (()); 注:对象方法中的调用上下文( this )不同于普通函数中的上下文。这里 this 指代当前对象。方法链:当方法返回值是一个对象,那么这个对象还可以再调用它的方法。每次调用的结果都是另外一个表达式的组成部分,这种方法调用方式最终会形成一个序列,也被称为“方法链”。所以,在自己设计 API 的时候,当方法并不需要返回值时,最好直接返回 this 。这样以后使用 API 就可以进行“链式调用”风格的编程。需要注意的是, this 是一个关键字, Javascript 语法不允许给它赋值。再者,关键字 t