apply、call、callee、caller初步了解】的更多相关文章

在javascript中这四货通常一起出现介绍,楼主记忆力实在是太差经常忘记用法,故记此文. apply和call apply和call是函数原型的一个方法,调用者的类型必须是函数.官方解释:应用某一对象的一个方法,用另一个对象替换当前对象.通常用于改变上下文的this,这点和bind相似.apply和call的区别:方法传递的参数不同.apply传递的是一个数组,如果木有第二个参数两者用法结果相同. 使用方法:fun.call(thisArg[, arg1[, arg2[, …]]]) fun…
arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得function傳入的實際變數Array.這個變數特別適合用在撰寫”多形”(Polymorphism)函式上,即可以根據不同的傳入參數做不同的處理.範例一 – 加總函式 function sum() { var total = 0; for( var i=0; i<arguments.length;…
记录一下: 1.arguments是一个对象, 是函数的一个特性,只有在函数内才具有这个特性,在函数外部不用使用. 举例: function test(){   alert(typeof arguments); //object }    alert(typeof arguments);  //undefined 2.callee,caller callee 表示当前正在使用的函数,例如 arguments.callee 表示test caller 表示当前函数的调用者,如果在最顶层 那么就为…
原文地址:js callee,caller学习 /* * caller 返回一个对函数的引用,该函数调用了当前函数. * 如果函数是由顶层调用的,那么 caller包含的就是 null . * 如果在字符串上下文中使用 caller属性,那么结果和 functionName.toString * 一样,也就是说,显示的是函数的反编译文本. * 在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象.如果该函数当前未被调用,或并非被其他函数调用,则caller为…
先从一个简单的例子说起,一个简单的button控件如下: < input  type ='button'  name ='mybtn'  id ='mybtn'  onclick ='myFunc()' />   然后为其注册事件,这样的情况,怎么在javascript里获取event呢,特别是firefox的情况.请看: < script  type ='text/javascript' > function  myFunc(){    var  ev  =  window.ev…
如果有一个函数像下面这样: function fn(){ } 那么fn这个函数下面就有一个arguments属性(你在逗我么,后面又说对象),该属性是个对象(typeof一下就知道了),然后它下面也有属性: 说到arguments有属性,那么属性有什么呢,恩~下面就介绍其中一个属性:callee:先看怎么用吧: function fn(){ alert( arguments.callee ) } fn(); 执行结果弹出:function fn(){alert( arguments.callee…
在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数; 而函数对象的另一个属性:caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为null. <script type="text/javascript"> function inner(){ alert(arguments.callee); //指向拥有这个arguments对象的函数,即inner() alert(argumen…
arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n :选项.要传递给 Function 对象的从0开始的参数值索引. 说明 Arguments 是进行函数调用 时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方 式,可以由arguments[n]来访问对应的单…
arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字. n :选项.要传递给 Function 对象的从0开始的参数值索引. 说明 Arguments是进行函数调用 时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方 式,可以由arguments[n]来访问对应的单个参…
可能不少学习javascript在使用call,apply,callee时会感到困惑,以下希望对于你有所帮助: 1.~~~call ,apply是函数(函数对象)的方法:callee是函数arguments对象的属性 引用函数自身 2.~~~call,apply改变上下文对象this的指向 3.~~call apply方法让函数作为另一个对象的方法被调用 4.~~ apply方法只能接受数组作为参数 >> call f.call(o,1,2) 等同于o.m = f;o.m(1,2);例1:fu…