Javascript函数_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、javascript函数一、函数的定义 函数保留字function 函数名,可以被省略,可以用它的名字递归的调用自己 参数 函数主体,函数可以有return语句,也可以没有return语句。return语句可以停止函数的运行,并把表达式的值返给函数调用者。假如不包含return语句,函数只执行函数体中每条语句,然后返回undefined对函数调用者。 例:function add(num1, num2) return num1 + num2;/匿名函数var add = function(num1, num2) return num1 + num2;/递归调用function factoria

2、l(x) if (x = 1) return 1; else return x*factorial(x-1); 二、匿名函数、函数的调用匿名函数就是没出名字的函数,也叫拉姆达函数。/函数声明function functionname(arg0, arg1, arg2) /do something/函数表达式var functionname = function(arg0, arg1, arg2) /do something上面的两个例子在规律上等价,但是它们之间还是存在一些区分。函数声明与函数表达式的主要区分,就是前者会在代码执行以前加载到作用域中,而后者是代码执行到那一行时才会有定义。另一个

3、重要的区分是,函数声明会会给函数指定一个名字,而函数表达式则是创建一个匿名函数,然后将这个匿名函数赋值给一个变量。三、函数的调用3.1 办法调用模式当函数被保存为对象的一个属性时,我们称它为一个办法。当一个办法调用时,this被绑定到该对象。var o = value: 0, increment: function(inc) this.value += typeof inc = number ? inc : 1; ;o.increment();console.log(o.value); /1o.increment(2);console.log(o.value); /3o.increment(5

4、);console.log(o.value); /8o.increment(test);console.log(o.value); /9办法可以用this去拜访该对象,所以它能从对象中取值或修改该对象。通过this取得它们上下文的办法称为公用办法。3.2 函数调用模式var sum = add(2, 4); /sum为6当函数以该模式调用时,this被绑定到全局对象。解决办法:给该办法定义一个变量并赋值为this,那为内部函数就可以通过该变量拜访到this。/函数调用模式var add = function(num1, num2) return num1 + num2;o.double = f

5、unction() var _self = this; var op = function() _self.value = add(_self.value, _self.value); ; op();o.double();console.log(o.value); /183.3 构造函数调用模式/创建构造函数var person = function(name) = name;ptotype.get_name = function() return ;var driver = new person(jack);console.log(dr

6、iver.get_name();3.4 apply模式apply办法构建一个参数数组并去调用函数。apply办法接收两个参数,第一个是绑定给this的值,其次个是参数数组。var arr = 11, 12;var sum = add.apply(null, arr);console.log(sum); /23var teacher = name: lucy;var name = ptotype.get_name.apply(teacher);console.log(name); /lucy四、this 的工作原理javascript 有一套彻低不同于其它语言的对 this 的

7、处理机制。 在五种不同的状况下 ,this 指向的各不相同。4.1 全局范围内this;当在所有范围内用法 this,它将会指向全局对象。4.2 函数调用foo();这里 this 也会指向全局对象。4.3 调用构造函数new foo();假如函数倾向于和 new 关键词一块用法,则我们称这个函数是 构造函数。 在函数内部,this 指向新创建的对象。4.4 显式的设置 thisfunction foo(a, b, c) var bar = ;foo.apply(bar, 1, 2, 3); / 数组将会被扩展,如下所示foo.call(bar, 1, 2, 3); / 传递到foo的参数是:a = 1, b = 2, c = 3当用法 fto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论