我似乎记得WITH有一个问题.我不会错过它; 我更喜欢我的代码的每一行都独立存在.
当我(在SO)学习人们认为链接他们最喜欢的jQuery功能时,我开始想知道这一点.JavaScript的WITH和jQuery的链接基本上是相同的功能,对吧?
不,他们不是一回事......
With是一个简短的引用类成员,而无需完全限定其名称.
with o
{
x = y; // where x is a member of o. But how can you tell for sure?
}
Run Code Online (Sandbox Code Playgroud)
阅读道格拉斯·克罗克福德关于With的内容.他鼓励避免它 - 说它容易出错并且含糊不清.我同意他的看法.
jQuery链接是一种实现流畅接口的方法,允许您将结果从一个方法直接传递到另一个方法.也就是说,给定方法的输出作为下一个方法的输入.如果你使用大量的空格,jQuery链接确实可以看起来像.以下示例来自John Resig的演示.
jQuery("div").hide("slow", function(){
jQuery(this)
.addClass("done")
.find("span")
.addClass("done")
.end()
.show("slow", function(){
jQuery(this).removeClass("done");
});
});
Run Code Online (Sandbox Code Playgroud)
与链接并不完全相同.有影响范围,而链接没有.考虑:
a.b.c = foo;
Run Code Online (Sandbox Code Playgroud)
要么:
with(a.b) { c = foo; }
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,你不知道c是否存在于with块之外,所以如果你可能只是在破坏程序的另一部分依赖的东西.
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |