兔子专栏

刘晓逸(liuxiaoyi666)的小地盘

突然想起的一个简单而好玩的关于js和vbs的反射问题

今天考一个朋友的一道题
<%
  function b()
    Response.write("hello world!")
  end function

  function a(str)
    //这句用str来执行b函数,请问怎么写?
  end function

  a "b"
%>

其实答案蛮简单的,用个execute(str)就解决了
在js里我自己写的是

<script>
 function b(){
    alert("hello world!");
}

  function a(str){
    eval(str+"()");
  }
 a("b");
</script>

风之石的答案是:
<script>
 function b(){
    alert("hello world!");
}

  function a(str){
    eval(str).call(0);
  }
 a("b");
</script>
用call是比较爽的办法,比我写的代码要漂亮

call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。
<script>
function a(){
}
a.call(b);
function b(){
  alert("xxx");
}
</script>
一个有趣的试验

阅读更多
文章标签: function
上一篇web下的投票系统设计
下一篇dotnet下用c#制作下载工具
想对作者说点什么? 我来说一句

vbs整人代码大集合

2013年12月02日 12KB 下载

windows脚本(JS,VBS)手册

2014年04月17日 1.34MB 下载

没有更多推荐了,返回首页

关闭
关闭