escape: function(attr) {
var html;
if (html = this._escapedAttributes[attr]) return html;
...
如上所述,这样做有什么好处?,不是按照以下方式进行的?
var html = this._escapedAttributes[attr];
if( html ) return html;
答案 0 :(得分:2)
这是优势还是令人困惑,取决于您,您的团队和您的编码惯例。
另一个可能非常有用的例子
function foo( arr, elem ) {
while( elem = arr.shift() ) {
console.log( elem * elem );
}
}
你可以像
一样使用它foo([5,4,3,2,1]);
同样适用于if statements
。有时,在某个条件中为某个变量赋值可能有意义或有用,直接在案例中进行访问。当然,对于一些不熟悉它的人来说,这可能不方便,但是,如果你的约定和你的团队对这样的事情达成一致意见,它可能会非常整洁。
其他语言提供此功能"功能"默认情况下。例如,像$_
或->
这样的特殊变量名称会自动引用你手上的东西。
答案 1 :(得分:1)
没有优势*,只是愚蠢。你知道,不可读性是新时尚。
*除非您的编码约定是永远不要同时分配和声明变量。但我认为这不适用于此。
答案 2 :(得分:1)
老实说,这样做没有值得注意的优点。这降低了可读性并使代码难以维护。
如果你不得不将一个值重新分配给html
变量(就像它已经声明的那样),它可能会略微减少代码文件的大小,尽管这种减少完全可以忽略不计,除非由于一些未知和可怕的原因它已经完成了数千次。例如,以下内容会更短:
function escape() {
var html = "tree";
// interact with html variable, and later on get to this:
if (html = this._escapedAttributes[attr]) return html;
}
比这个:
function escape() {
var html = "tree";
// interact with html variable, and later on get to this:
html = this._escapedAttributes[attr]
if (html) return html;
}