`

javascript的callee属性使用

 
阅读更多

一个有全局变量污染的例子。

var uid = 1;

function newId(){
  return uid++;
}

newId(); // 1
newId(); // 2


使用callee后减少了全局变量污染。

function newId(){
  var thisFun = arguments.callee;
  if(!thisFun.uid) thisFun.uid = 1;
  return thisFun.uid++;
}

newId(); // 1
newId(); // 2
分享到:
评论

相关推荐

    JavaScript中callee和caller的区别与用法实例分析

    本文实例讲述了JavaScript中callee和caller的区别与用法。分享给大家供大家参考,具体如下: 1.callee 在函数的内部,有两个特殊的对象:arguments和this。其中arguments是一个类似数组的对象,包含着传入函数的所有...

    javascript中caller和callee详解

    最近学习javascript,碰到caller和callee的问题,去网上百度了很多。搜到的内容大同小益,整理总结了一下与大家分享。 caller:返回一个对调用function函数的函数的引用(用法:function.caller) 说明:对于函数来...

    JavaScript arguments.callee作用及替换方案详解

     arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文,这有利于匿名函数的递归或者保证函数的封装性。  请看下面...

    javascript学习笔记.docx

    13) 一个窗口中的任何框架都可以使用属性frames、parent和top引用窗口中的其它框架。 14) 若框架指定了名字,引用就会被存储到它的父Window对象的一个同名新属性中。 15) 自定义的函数和构造函数只在定义它的窗口中...

    js中的caller和callee属性介绍和例子

    如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null 。 下面的例子说明了 caller 属性的用法: 代码如下:function callerDemo() { if ( arguments.caller) { var a= callerDemo.caller....

    【JavaScript源代码】JavaScript中arguments的使用方法详解.docx

    JavaScript中arguments的使用方法详解  js这是一门弱语言,不像其他语言如c,java等,有严格的规范, 所以现在也流传着一种说法,js本来就不是一种语言; 说回arguments,它是js中函数内置的一个对象,而执行函数...

    javascript中callee与caller的区别分析

    callee是对象的一个属性,该属性是一个指针,指向参数arguments对象的函数 首先我们来写个阶成函数: function chen(x){ if (x<=1) { return 1; } else{ return x*chen(x-1); }; }; 从这个函数中可以看出来,...

    详解JavaScript函数callee、call、apply的区别

    关于callee的解释:callee 是 arguments 对象的一个属性。可以用于引用该函数的函数体内当前正在执行的函数。这在函数的名称是未知时很有用,例如在没有名称的函数表达式 (也称为“匿名函数”)内。 递归调用实现一...

    javascript文档

    callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 caller 属性 返回调用当前函数的函数引用。 catch 语句 包含在 try 语句块中的代码发生错误时执行的语句。 ceil 方法 返回大于或等于其数值...

    浅谈javascript 函数内部属性

     但是这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。  请看经典的阶乘函数例子: 代码如下:  function Factorial(num) {  if (num <= 1) {  return 1;  } else ...

    微软JavaScript手册

    callee 属性 返回正执行的函数对象,它是指定的函数对象的文本正文。 caller 属性 返回调用当前函数的函数引用。 catch 语句 包含在 try 语句块中的代码发生错误时执行的语句。 ceil 方法 返回大于或等于其数值...

    caller和callee的区别介绍及演示结果

    1 这个属性只有当函数在执行时才有用2 如果在javascript程序中,函数是由顶层调用的,则返回nullfunctionName.caller: functionName是当前正在执行的函数。 代码如下:var a = function() { alert(a.caller);...

    javascript获取函数名称、函数参数、对象属性名称的代码实例

    一、获取函数名称的3种实现方法实例1: 在js权威指南中看到的一个方法: Function.prototype.getName = function(){ return this.... 代码如下: var getFnName = function(callee){ var _callee = callee.toString

    JS匿名函数、闭包

    即使JavaScript中没有正式的私有对象属性的概念,但可以使用闭包来实现公有方法,而通过公有方法可以访问在包含作用域中定义的变量; 有权访问私有变量的公有方法叫做特权方法; 可以使用构造函数模式、原型模式...

    《javaScrip开发技术大全》源代码

    • sample08.htm 使用外部脚本文件和嵌入的JavaScript代码 • sample09.htm 边加载边解析的JavaScript代码 • sample10.htm 先加载后解析的JavaScript代码 • sample11.htm 单行...

    JS滚轮事件

    如果是 IE 浏览器,可以使用 attachEvent 方法,而如果是其他浏览器,可以使用 addEventListener 方法。下面是一个注册滚轮事件的示例代码: ```javascript function addScrollListener(element, wheelHandle) { ...

    javascript学习笔记(七) js函数介绍

    1.函数内部属性 arguments arguments用来保存函数的参数,arguments.callee指向拥有arguments对象的函数 代码如下: //阶乘 function factorial(num) { if (num <= 1) { return 1; } else { return num*arguments....

    JoV5#blog#4.7 【ES5】严格模式与闭包1

    3. 访问arguments.callee或函数的caller属性将导致“类型错误(TypeError)” 4. 以下代码的执行效果与非严格模式并不一致:js

Global site tag (gtag.js) - Google Analytics