【javascript】arguments.callee、func.caller

1、arguments.callee

 function test() { console.log(arguments.callee); } 打印函数自己

运用: 立即执行函数里使用递归

   var num = (function() {

                  if(n == 1) {

                        return 1;

                  }

        return n * arguments.callee(n - 1);

     }())

2、func.caller   (func被调用的那个环境, ES5 的严格模式下报错)

  function test() { demo(); }

  function demo() { console.log(demo.caller); }      //打印test函数

  demo();

原文地址:https://www.cnblogs.com/hjysunshine/p/12284996.html

时间: 2024-07-31 17:23:38

【javascript】arguments.callee、func.caller的相关文章

【javascript】正则表达式match、exec和test的使用

正则表达式match.exec和test的使用 match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是null:test在匹配成功是返回true,在没有匹配时返回的是false.match是String的方法,而test和exec是RegExp的方法.本文探讨的是全局匹配与分组匹配的问题,并有源码附着. 一.全局匹配 1.正则表达式可以使用RegExp对象定义,也可以使用常量表达式定义. var regexp=new RegExp(/\w+/gi); 或者 var regexp

【JavaScript】事件

所谓事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间 一.事件流 在页面上,单击某个元素的同时,也单击了它的包含容器.事件流就是描述的从页面中接收事件的顺序.IE是事件冒泡流,Netscape是事件捕获流. 事件冒泡:事件开始时,由最具体的元素接收,然后逐级向上传播到较为不具体的节点:(所有现代浏览器都支持事件冒泡) 事件捕获:不太具体的节点最早接收到事件,最具体的节点最后接收到事件.(老版本浏览器不支持) DOM事件流 DOM2级事件规定的事件流包括三个阶段:1.事件不惑阶段:2.处于目标

【JavaScript】使用面向对象的技术创建高级 Web 应用程序

本文讨论: JavaScript 是基于原型的语言 用 JavaScript 进行面向对象的编程 JavaScript 编码技巧 JavaScript 的未来 本文使用了以下技术: JavaScript   目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript 代码吗? 展望 最近,我面试了一个有五年 Web 应用程序开发经验的软件开发人员.四年半来她一直

【JavaScript】Registering JavaScript object methods as callbacks

The registration of callback functions is very common in JavaScript web programming, for example to attach user interface event handlers (such as onclick), or to provide a function to handle an XHR response. Registering an object method as a callback

【javaScript】早绑定和迟绑定

javaScript会在调用时会设置执行上下文"this"的值. 一些经常使用的错误例子 我们举一个例子,给一个Menu构造函数,来接受一个元素来创建一个菜单. function Menu(elem){ //... } //使用 var elem = document.getElementById('something') // a DOM element var menu = new Menu(elem); 当我们在构造函数里调用setTimeout时,你也许想引用这个menu对象,

【Javascript】JS常用方法扩展

1.格式化字符串操作 String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { var reg=new RegExp ("({"+key+"})"

【javascript】ajax 基础 --本文转载

[javascript]ajax 基础 什么是 ajax ajax 即"Asynchronous JavaScript and XML"(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 http 请求的方法(GET 和 POST). GET 用于获取数据.GET 是在 URL 中传递数据,它的安全性低,容量低. POST 用于上传数据.POST 安全性一般,容量几乎无限. ajax 请求 ajax 请求一般分成 4 个步骤. 1.创建 a

【JavaScript】兼容IE6可调可控的图片滑块

图片滑块其实也与图片轮播一样,无需这么多奇奇怪怪的代码就能够实现,只是布局有点复杂,而且这东西在Bootstrap里面也没有,在网页中,这个组件也越来越少见的,毕竟这个小小的组件太浪费网络资源了,实现的逻辑还比较复杂,如果不要被特别要求,能不做最好不好. 有时候,如果一个如同<[CSS]黑色幽默,兼容IE6的纯原生态的门户网站>(点击打开链接)的简单网页就能够交货,就不要卖弄你的前端技巧了. 虽然这个组件的效率很低,但是还是讲解一下实现的原理,也是完美兼容IE6,同时包你能够随心所欲地放置这个

【JavaScript】使用Bootstrap来编写 选择折叠项collapse

选择折叠项collapse在网页中并不常用,不过也并不少见. 这也算是一个比较实用的组件. 折叠项collapse在默认情况下仅能有一项是处于打开状态的. 一.基本目标 使用Bootstrap来编写如下图的选择折叠项: 其中服务条款2在打开网页的时候就是打开状态. 点击不同的折叠项,其余的项就会收起,这项就会打开. 二.制作过程 1.同之前<[JavaScript]使用Bootstrap来编写一个在当前网页弹出的对话框,可以关闭,不用跳转,非弹窗>的第一步(点击打开链接) 因为需要使用Boot