+ -
当前位置:首页 → 问答吧 → 超级BT的JS写法。

超级BT的JS写法。

时间:2011-12-02

来源:互联网

直插代码!
JScript code

function test(){
    var tmp=this;
    this.self=(function(a){
                   alert(a);
                   return tmp.self;
               });
}
t=new test();
t.self(1)(2)(3)(4)(5)(6);

作者: ioriliao22   发布时间: 2011-12-02

额。。哪里BT?只不过self一直返回本身函数而已。。

作者: liangws   发布时间: 2011-12-02

引用 1 楼 liangws 的回复:

额。。哪里BT?只不过self一直返回本身函数而已。。

能否解释下?

作者: ioriliao22   发布时间: 2011-12-02

为什么说是BT。。没看出来,,,

作者: zsx841021   发布时间: 2011-12-02

就是自调~·

自己调用自己~·形成递归?

作者: MuBeiBei   发布时间: 2011-12-02

执行完后又返回本身的对象。

作者: licip   发布时间: 2011-12-02

好吧,我换一段你们就知道了:
JScript code

function test(){
    var tmp=this;
    this.self=(function(a){
                   alert(a);
                   return tmp.self;
               });
}
t=new test();
t.self(1)(2)(3)(4)(5)(6);

作者: ioriliao22   发布时间: 2011-12-02

上面那段没改过的,看下段:
JScript code

function test(){
    this.self=(function(a){
                   alert(a);
                   return this.self;
               });
}
t=new test();
t.self(1)(2)(3)(4)(5)(6);

作者: ioriliao22   发布时间: 2011-12-02

有点意思。不同作用域下this的含义+闭包应用。

作者: Fioit   发布时间: 2011-12-02

請樓主解釋!

作者: TimeforL   发布时间: 2011-12-02

引用 7 楼 ioriliao22 的回复:

上面那段没改过的,看下段:
JScript code

function test(){
this.self=(function(a){
alert(a);
return this.self;
});
}
t=new test();
t.self(1)(2)(3)(4)(5)(6……

这一段(2)之后this就绑定到window上了,执行不下去的

作者: liangws   发布时间: 2011-12-02

this.self=(function(a){
  alert(a);
  return tmp.self;
  });
而且这里,这个括号完全是没用的。。加不加都是一样的。。“=”已经代表右边是个表示式

作者: liangws   发布时间: 2011-12-02

相关阅读 更多