码迷,mamicode.com
首页 > 其他好文 > 详细

第七章 引用与function

时间:2015-07-08 18:30:06      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

引用的概念实际上跟C语言的差不多,我理解就是一个指向内存地址的指针,只不过没有指向指针的指针之类。针对引用类型进行的不同操作,会造成互相的影响。

在javaScript里,有五种基本类型,undefined,null,Number,String,Boolean,还有一种复杂类型是Object。,Object就是引用类型。

引用类型在JS里,基本的引用类型有很多,包括但不限于Object,Array,Math,Date,RegExp,Function,Boolean,Number,String。Boolean、Number、String即使基本类型,也是引用类型。

这里说一说Function类型,也就是说好所Function的实例:函数。

  • 定义函数有两种方法,一种是声明方式定义,一种是表达式方式定义。这两个的区别在于函数的定义是在什么时候,如果函数的定义在表达式里,那么我们就说是表达式方式定义的。
  • 函数没有重载,同名的新函数会覆盖同名的旧函数。
  • 函数声明在js里,即使在调用语句之后也是可以的,这成为声明提升,这个特性针对变量也是一样的。
  • 函数可以做为参数和返回值存在。
  • 函数内部有两个特殊对象:this和arguments
  • 函数内部有两个特殊属性:callee,是一个指针,指向函数本身。caller:也是一个指针,指向调用当前函数的函数。a调用b,那么b里边的arguments.caller就指向a。
function a() {
    b();  //调用b
}

function b() {
    alert(b.caller);  //a.caller就指向a,相当于alert(a)
    alert(a);
}
a();
  • 函数有两个特殊的方法:apply()和call()。这两个函数都有一个作用,就是在特定的作用域内调用函数,使被调用的函数的this值变为我们设置的this值,这样就可以扩充函数运行的作用域,而且低耦合!ECMAScript5定义了一个bind()方法,也是差不多的效果。
function sum(num1,num2) {
    alert(num1+num2);
}

function sum1(num1,num2) {
    sum.apply(this,arguments);   //调用了sum函数,并且把sum1的this和arguments对象做为参数,也就是把sum的this变成了sum1的this,sum的arguments对象变成了sum1的arguments对象。
}

sum1(1,2);  //3

 

第七章 引用与function

标签:

原文地址:http://www.cnblogs.com/jingubang/p/4630377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!