超级BT的JS写法。

ioriliao22 2011-12-02 10:44:44
直插代码!

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);
...全文
258 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
一個程序員 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 ioriliao22 的回复:]
直插代码!
JScript code

function test(){
var tmp=this;
this.self=(function(a){
alert(a);
return tmp.self;
});
}
t=new test();
t.self(1)(2)(3)……
[/Quote]

只是个方法链。

何必这么复杂,还需要new个啥

var fn = function(a){
alert(a);
return arguments.callee;
}
liangws 2011-12-02
  • 打赏
  • 举报
回复
this.self=(function(a){
alert(a);
return tmp.self;
});
而且这里,这个括号完全是没用的。。加不加都是一样的。。“=”已经代表右边是个表示式
liangws 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 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……
[/Quote]
这一段(2)之后this就绑定到window上了,执行不下去的
liangws 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 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……
[/Quote]
这一段(2)之后this绑定在window上。。执行不下去
TimeforL 2011-12-02
  • 打赏
  • 举报
回复
請樓主解釋!
Fioit 2011-12-02
  • 打赏
  • 举报
回复
有点意思。不同作用域下this的含义+闭包应用。
ioriliao22 2011-12-02
  • 打赏
  • 举报
回复
上面那段没改过的,看下段:

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
  • 打赏
  • 举报
回复
好吧,我换一段你们就知道了:

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);
licip 2011-12-02
  • 打赏
  • 举报
回复
执行完后又返回本身的对象。
MuBeiBei 2011-12-02
  • 打赏
  • 举报
回复
就是自调~·

自己调用自己~·形成递归?
三石-gary 2011-12-02
  • 打赏
  • 举报
回复
为什么说是BT。。没看出来,,,
ioriliao22 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangws 的回复:]

额。。哪里BT?只不过self一直返回本身函数而已。。
[/Quote]
能否解释下?
liangws 2011-12-02
  • 打赏
  • 举报
回复
额。。哪里BT?只不过self一直返回本身函数而已。。
-晴天 2011-12-02
  • 打赏
  • 举报
回复
纯没事找抽。
wrong1111 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 diky87688973 的回复:]

引用楼主 ioriliao22 的回复:
直插代码!
JScript code

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


只是个方法链。

何必这么复杂,还需要……
[/Quote]

顶 这个
fujitsuper 2011-12-02
  • 打赏
  • 举报
回复
function test(){
this.self=(function(a){
alert(a);
return this.self;
});
}
t=new test();
t.self(1)(2)(3)(4)(5);
t.self(1).call(t,[2]).call(t,[3]);
这样就可以解决啦!!!!

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧