2018.3.25李锦浩【连续第166天】
今天学习一下对于function类型内部的属性和方法。
对于Function类型中,有两个属性,一个是argument和this。对于argument是一个数组对象,包含着传入函数中的所有参数。虽然argument的主要用途是保存函数参数,但是在其中还有一个对象callee是保存函数的,这个是一个指针。Callee对象主要是用于消除递归算法中出现的紧密的耦合现象。
而this对象的用法和作用与C++和java中类似。
另外在ECMAScript5中又定义了一个新的对象属性:caller。这个属性中保存着调用打枊前函数的函数的引用。如果是在全局作用域中调用当前函数,他的值为null。这个属性的作用是为了得到更加松散的耦合。
下面就是Function类型中的一些方法:
没有函数都包含length和prototype这两个属性。
Length表示函数希望收到的参数个数,而prototype则是保存着函数的方法,这个属性是不可枚举的,因此,无法通过for-in来访问。
Apply()和call()方法就是为函数传递参数,区别在与apply()方法更适合传递数组或者是对象,否则就是call()可能更合适。在不给函数传参的情况下,两者都可以。
明日任务:继续学习JavaScript