caller 属性(函数)(JavaScript)

转载:http://msdn.microsoft.com/zh-cn/library/7t96kt3h(v=vs.94).aspx

获取调用当前函数的函数。

functionName.caller

备注

functionName 对象是任何正在执行的函数的名称。

caller 属性只有当函数正在执行时才被定义。 如果函数是从 JavaScript 程序的顶层调用的,则 caller 包含 null。

如果在字符串上下文中使用 caller 属性,则其结果和 functionName.toString 相同,也就是说,将显示函数的反编译文本。

下面的示例阐释了 caller 属性的用法:

 1 function CallLevel(){
 2    if (CallLevel.caller == null)
 3       return("CallLevel was called from the top level.");
 4    else
 5       return("CallLevel was called by another function.");
 6 }
 7
 8 document.write(CallLevel());
 9
10 // Output: CallLevel was called from the top level.

要求

在以下文档模式中受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式、Internet Explorer 8 标准模式、Internet Explorer 9 标准模式、Internet Explorer 10 标准模式和 Internet Explorer 11 标准模式。此外,也在应用商店应用(Windows 8 和 Windows Phone 8.1)中受支持。

时间: 2024-08-05 07:40:41

caller 属性(函数)(JavaScript)的相关文章

JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法

函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留言告诉我, 谢谢).因为调用对象是作用域链的一部分,所以在函数体内可以把这个对象属性作为变量来访问. 调用对象的属性包括:用var声明的局部变量,函数形参,还有一种特殊的属性arguments 函数的实际参数:实际参数对象 arguments对象,用来引用实际参数对象.函数的arguments对象并

函数的caller属性

今天我在这里通过一个例子介绍一下函数自身的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

js函数的caller属性

函数的caller属性返回的是调用当前函数的上层函数,caller的初始值是null.当函数没有被其他函数调用时caller的值为null. function b(){ function c(){ console.log(c.caller); } c(); } b(); 结果: function b(){ function c(){ console.log(c.caller); } c(); }

js中的caller属性和callee属性

应该用"属性"来称呼caller和callee,而不是方法. caller:返回调用当前函数的函数的引用.a调用b,则返回a(a是boss,因为a把b叫过去干活了): callee: 这个属性中保存b(b是被叫过去差遣的).返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文. 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null .(全局作用域中调用,值为null) --但是callee属性有什么用处呢?? 1

静态属性,函数闭包,call/apply,继承

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>静态属性,函数闭包,call/apply,继承</title> <script type="text/javascript"> /* 一:静态属性 在一些面向对象语言里,可以使用static关键字来显示的定义属性和方法.这一点

caller 属性和callee属性

1.caller 属性 返回一个对函数的引用,即调用了当前函数的函数体. functionName.caller :functionName 对象是所执行函数的名称. 说明: 对于函数来说,caller 属性只有在函数执行时才有定义. 如果函数是由 JScript 程序的顶层调用的,那么 caller 包含的就是 null .如果在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本. Js代码 function

Object.defineProperty 函数 (JavaScript)

将属性添加到对象,或修改现有属性的特性. 语法 Object.defineProperty(object, propertyname, descriptor) 参数 object 必需.  要在其上添加或修改属性的对象.  这可能是一个本机 JavaScript 对象(即用户定义的对象或内置对象)或 DOM 对象. propertyname 必需.  一个包含属性名称的字符串. descriptor 必需.  属性描述符.  它可以针对数据属性或访问器属性. 返回值 已修改对象. 备注 可使用 

Object.keys 函数 (JavaScript)

Object.keys 函数 (JavaScript) 返回对象的可枚举属性和方法的名称. 在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b':'345'}; console.log(Object.keys(obj)); //['a','b'] var obj1 = { 100: "a", 2: "b", 7: &qu

在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?

原文:在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样? <a href="javascript:alert(this.innerHTML)" mce_href="javascript:alert(this.innerHTML)">标签</a> 上面的这段代码不能得到你想要的结果,因为在<A>标记中href属性的this对象不是指代的当前的<A>标记, 这个时候的this是