全国服务热线:18980020603 成都热线:028-86633922
新闻中心网站专题联系我们
行业新闻 建站经验 网站建设资讯 手机网站资讯 微信网站建设资讯 APP开发资讯 商城网站资讯

网站建设: 介绍caller的概念及其兼容性差异

发布人:桔子科技    发布时间:2015-05-07 07:11:12    分享到:
caller是Function实例中的对象,虽然很早以前arguments对象中也存在caller,但是后来废弃了那个属性。caller的功能从它的名字就可以猜到,是获取一个函数的调用者。正所谓无风不起浪,一个函数是不可能平白无故就运行起来的,必须要有什么地方调用它才能运行。

如果函数A被函数B调用,那么在被调用的期间,函数A的caller就是函数B。如果一个函数不是被另一个函数调用的,caller就为null。看下面的代码就很容易理caller的基本性质。

function a(){
return a.caller;
};
function b(){
alert(a.caller); //null 此刻的a没被调用
alert(a()); //函数b
alert(a.caller); //null 此刻的a没被调用
};
alert(a());//null 是在全局中调用的,不是被某个函数调用的
b();

caller的基本概念虽然很简单但是有一处兼容性问题。当一个函数被eval执行时,由于eval有global和local两种模式,所以执行起来会有很大的差异。下面是测试代码,由于实验结果差异太大我就不逐个浏览器截图了,会做一个表格贴出数据。

function f(){
eval(“g()”);
(1,eval)(“g()”);
};
function g(){
alert(g.caller);
};
f();

方式\环境 Chrome Firefox Opera IE9+ IE8-
eval f f f f null
(1,eval) eval null f f null
果然很纠结吧,特别是Chrome的行为诡异到不可思议。不过真正遇到eval+caller的情况不多这些东西也不用太纠结。至于(1,eval)这种用法我以后的文章会说道,这里就简单的说一下,这个用法在现代浏览器中是在全局作用域执行代码。这篇文章也就到这儿吧,内容本来就不多。
本文来源于成都网站建设公司、成都网站设计制作公司与成都APP开发公司-桔子科技公司!
成都网站建设,成都网站设计,成都网站制作,成都网页设计,成都网站建设公司 ,成都网站设计公司, 成都网站制作公司,成都手机网站建设,手机网站建设,成都APP开发,APP开发,成都建网站,成都做网站,成都微信网站建设,成都微商城网站建设,成都商城网站建设,成都网络公司。

下一篇:成都网站建设分享什么样的友链会把你的网站带入下坡路上一篇:网站建设: 如何处理布局中的垂直块间距问题

最新案例
手机/微网站
  1. [成都]微信网站建设:微信分销系统能为商铺带来哪些特色服务
  2. [成都]微信网站建设:如何通过微信公众号来推广产品
  3. [成都]微信网站建设:微信开发都有些什么功能
  4. [成都]手机网站:手机网站设计需要达到什么效果
  5. [成都]手机网站:手机网站响应式网站解决方案
  6. [成都]手机网站:手机网站响应式网站解决方案
网络营销
  1. APP开发: APP网页评分功能设计
  2. APP开发:手机APP开发前这4点必须要了解
  3. APP开发:为什么企业要做手机APP
  4. APP开发:你可以更好的留住APP用户
  5. APP开发:开发时间的长短主要由哪些因素决定
  6. APP开发:电子商务类APP开发的4点建议
img

7x24小时售后服务

img

5倍故障时长赔付

img

15天无理由退款

img

N对一管家服务

让我们的顾问联系您

  • 电话:4006-028-024 028-86633922

    邮箱:Service@orangeapp.cn

    成都市成华区崔家店路789号上城国际1-24-9号

qq sina