js函数的caller属性】的更多相关文章

funcName.caller : 返回一个对函数的引用, 该函数调用了当前函数 function test() { if (test.caller) { var a = test.caller.toString(): alert(a): } else { alert("this is a top function"): } } function test2() { test(); } test(); // this is a top function test2(); // 显示函数…
应该用"属性"来称呼caller和callee,而不是方法. caller:返回调用当前函数的函数的引用.a调用b,则返回a(a是boss,因为a把b叫过去干活了): callee: 这个属性中保存b(b是被叫过去差遣的).返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文. 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null .(全局作用域中调用,值为null) --但是callee属性有什么用处呢?? 1…
今天我在这里通过一个例子介绍一下函数自身的call属性. 例: function whoCallMe(){ alert("My caller is" + whoCallMe.caller); }; function CallerA(){whoCallMe();}; function CallerB(){whoCallMe():}; alert{whoCallMe.caller};//输出结果为:null; whoCallMe();//输出结果为:My caller is null; C…
返回调用指定函数的函数. function test() { if (test.caller === null) console.log('test 函数在全局调用'); // 获取调用 test函数, 的函数名 console.log(test.caller.name ); // 更上面一样 console.log( arguments.callee.caller.name ); // 获取 test函数的auguments console.log( Array.prototype.slice…
length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,那些已定义了默认值的参数不算在内,比如function(xx = 0)的length是0.. 另外在函数内部:arguments.length 是函数被调用时实际传参的个数.…
函数创建方式 1.声明方式 例如:function consoleTip (){ console.log("tip!"); } 2.表达式方式 例如:var consoleTip = function(){ console.log("tip!"); }两种方式的区别: 1.表达式方式适合用来定义只使用一次的函数,声明方式定义的函数没有这个限制,当然也不是绝对的,这个区别只适用于编码规范上: 2.声明方式定义的函数可以在函数调用之前定义也可以在函数调用之后定义,而表达…
caller返回一个对函数的引用,该函数调用了当前函数. functionName.caller functionName 对象是所执行函数的名称. 说明对于函数来说,caller 属性只有在函数执行时才有定义. 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null .下面的例子说明了 caller 属性的用法: js 代码: function callerDemo() { if (arguments.caller) { var a = callerDe…
函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留言告诉我, 谢谢).因为调用对象是作用域链的一部分,所以在函数体内可以把这个对象属性作为变量来访问. 调用对象的属性包括:用var声明的局部变量,函数形参,还有一种特殊的属性arguments 函数的实际参数:实际参数对象 arguments对象,用来引用实际参数对象.函数的arguments对象并…
1 前言 JS函数可以再添加属性(包括方法),这个有点有趣,记录一下. 2 代码 <!DOCTYPE html> <html> <head> <title>Test canvs</title> <script type="text/javascript"> function gameLoop(){ console.log("%cI am red","background-color:r…
注意: 1.js为对象添加函数时,不要在函数后面加().一旦加了括号是表示将函数的返回值赋给对象的属性. 例:function test(){ document.writeln("我是js函数") } var obj = new Object(); obj.info=new function(){//给对象属性添加方法 } obj.info=test;//将一个已有的函数添加给对象属性<ajax连接的回调函数就是这么写,注意不需要括号>  2.在同个<script&g…