搜索
当前位置: 7303刘伯温开奖6374 > 调用 >

js 查看被什么方法调用

gecimao 发表于 2019-07-01 15:15 | 查看: | 回复:

  要是不传参,我想在 function search(){}里面知道我这个方法是被baidu()调用还是被google()调用,不知道JS有没这种功能,非常感谢

  哦,果真没这种功能么,现在很是郁闷啊,很多方法里面都调用同一个方法,现在想统计页面上使用这些方法的次数,我想把这个统计写在这个公共的方法里面,通过switch控制具体是哪些方法。。实际引用这个方法的方法太多了,每个方法都加一句统计就多了点,。。大侠有好的建议吗?。。

  恩,是这个效果。。。但不想在每个执行过search方法里面添加一行count++,有没什么奇妙的方法可以满足不改调用的方法元,直接在search里面去执行++操作呢?。。。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  最关键的地方是获得调用者的名称,需要用到 arguments 对象读取 js 的调用栈。

  执行以上代码会分别得到 google 和 baidu。下面是对调用的对象分解解说:

  在 js(正确的名称应该是:ECMAScript) 里一切都是对象,变量就不用说了,连函数也是作为对象存在的。每个函数都有 name 和 caller 属性,name 属性返回函数的名称,而 caller 属性返回的是调用它的函数对象(是对象不是名称)。

  而函数在调用开始会生成一个 arguments 对象,这个对象不光能读取到转递给函数的参数,还能通过 callee 属性返回生成它的函数对象,在上面的例子中 arguments.callee == search 函数对象,使用 arguments.callee 的好处是当 search 函数改名也不会影响程序的正确性。

  展开全部不传参数,判断调用元,这个好像不能实现。我做过的项目中也没有碰到过。

本文链接:http://olivierlutaud.net/diaoyong/604.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部