函数

来源:互联网 发布:宝马工程师编程步骤 编辑:程序博客网 时间:2024/06/05 10:51

当方法不需要返回值的时候,最好返回this,这个就可以进行链式调用风格的编程

arguments[ ]实参对象

可以获得函数的实参


callee和caller属性

callee:返回被执行函数的对象,可以在匿名函数中递归调用

var factorial = function(x) {if (x<=1) return 1;return x * arguments.callee(x-1);};


caller:返回调用正在执行函数的函数,通过caller属性可以访问调用栈

函数的call()和apply()方法

我们可以将call()和apply()看做是某个对象的方法通过调用方法的形式来间接调函数

要想以对象o的方法来调用函数f()可以这样使用call和apply()

f.call(o);f.apply(o);
等同于
o.m = f; // 将f存储为o的临时方法o.m(); // 调 用 它 ,不传入参数delete o.m; //将临时方法删除

call的第一个参数是要调用此方法的对象,接下来就各个参数.
apply和call差不多,只是它的参数都放在一个数组中
f.call(o,1,2);f.apply(o,[1,2]);

闭包

能够访问另一个函数作用域中的变量的函数
var scope = "global scope";      <span style="font-family: Arial, Helvetica, sans-serif;">/ / 全 局 变 量</span>function checkscope() {      var scope = "local scope";      <span style="font-family: Arial, Helvetica, sans-serif;">/ / 局 部 变 量</span>function f() { return scope; }return f;    <span style="font-family: Arial, Helvetica, sans-serif;">/ / 在 作 用 域 中 返 回 这 个 值</span>}checkscope()()<span style="font-family: Arial, Helvetica, sans-serif;">/ / 返 回 值 是 什 么 ?local scope</span>





0 0
原创粉丝点击