每个函数都是Function类型的实例.函数有三种定义方式和两个内部属性arguments和this. 同时函数也是对象,也有属性和方法.本篇主要其call()和apply()方法 属性 length 表示该函数希望接受的命名参数的个数 prototype 保存引用类型的实例方法.这个大强大功能是实现继承.下篇文章会讲到. 方法 call() 和 apply() 这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值.这便是它的强大的之处:扩充函数赖以运行的作用域.…
说起来ECMAScript 中什么最有意思,我想那莫过于函数了——而有意思的根源,则在于函数实际上是对象.每个函数都是Function 类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定.函数通常是使用函数声明语法定义的,如下面的例子所示.function sum (num1, num2) { return num1 + num2;}这与下面使用函数表达式定义函数的方式几乎相差无几.var sum = functio…
当scala中类或者对象有一个主要用途的时候,apply方法就是一个很好地语法糖.请看下面一个简单的例子: class Foo(foo: String) {} object Foo { def apply(foo: String) : Foo = { new Foo(foo) } } 定义了一个Foo类,并且在这个类中,有一个伴生对象Foo,里面定义了apply方法. 有了这个apply方法以后,我们在调用这个Foo类的时候,用函数的方式来调用: object Client { def main…
[call()与apply()的区别]在ECMAScript中每一个函数都是function类型(是javascript的基本引用类型)的实例,具有一定的属性和方法.call()和apply()则是这个function类型的实例的方法.每个函数都包含这两个非继承而来的方法.这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值.(用于传递参数) 区别:apply()方法:接受两个参数,一个是在其中运行函数的作用域,另一个是参数数组(可以是Array的实例,也可以是a…
$scope.$watch(watchFn , watchAction , deepWatch) 其中,watchFn是带有angular表达式或函数字符串: watchAction是一个函数或者表达式,当watchFn发生变化时调用,如果是函数,其签名是function(newValue, oldValue, scope): deepWatch如果是ture,则会检查被监控对象的每一个属性是否发生了变化. <script type="application/javascript"…
运用function实现阶乘 以往的做法是如下的 function factorial(num){ if(num <= 1){ return 1; }else{ return num * factorial(num - 1); } } 但是如果一旦函数名改变 函数内部的递归调用行数也要进行改变 重用性很不好所以可以使用function 内部的callee()方法,此方法是function 类型内部的一个属性,它是一个指针指向函数参数对象的函数,即callee所在函数的本身 所以以后的阶乘可以这样…
<JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new Object(); var person = {}; //二者效果是一样的,但使用对象字面量表示法定义对象时不会调用Object的构造函数 访问对象属性 点表示法 方括号表示法 person.name = ''; person['name'] = ''; // 方括号表示法能用变量来访问属性 var prop…
JS中许多有趣的地方都和函数脱不了联系 那么是什么让JS中的函数这么有趣呢? 我们一起来看看吧 Function类型 在JS中函数实际上就是对象,每个函数都是Function类型的实例,和JS的其他引用类型都拥有属性和方法 正是由于这个原因,函数名实际上就是一个指针,指向函数对象,并不会与函数绑定 函数的声明 创建一个函数一般来说有下面几种方法 // function关键字声明 function sayHello(){ alert("hello"); } // 函数表达式 var sa…
前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保存任何类型的数据:js数组的大小是可以动态调整的 */ var colors = ["red", "blue", "green"];…
首先转载一篇博文:关于map 和callbackfn 的一些参数和返回值可以查看以下链接. http://www.cnblogs.com/xuan52rock/p/4460938.html array1.map(callbackfn[, thisArg]) 其中参数 callbackfn[, thisArg] 可以参考Foreach callbackfn 为回调函数(也可以说是要遍历时执行的方法) thisArg 为当前遍历对象的值. 下面是将字符串转换成int数组的实例: <script ty…