2017-01-04 58 views
0

我在互聯網上看到了以下兩個代碼,我無法真正瞭解它們如何被解析和執行。順便說一句,我是ES6的新手。如何在給定的JS代碼中訪問對象屬性?

return getUsername() 
.then(function (username) { 
    return getUser(username); 
}) 
.then(function (user) { 
}); 

它是正確的解釋上面的代碼爲:

return getUsername().then(function(username){return getUser(username);}).then(function (user){}); 

還是有在ES6一些不同的含義?

同樣在以下幾點:

new Q(value) 
.then(function(/*Success handler*/){}, function(/*Failure handler*/){}) 

它應該被解釋爲:

new Q(value).then(function(/*Success handler*/){},function(/*Failure handler*/){}) 
+0

一般來說,空格在JavaScript中有沒有意義。所以是的,他們是一樣的。 –

回答

1

您的解釋是正確的,但這種編碼風格與ES6無關。它只是JS語法的一部分。

開發人員通常會將鏈接方法放在單獨的行上,以使目標對象更清晰。

閱讀這篇文章,關於方法鏈接和看文章的底部的鏈接方法在不同線路上的例子:https://schier.co/blog/2013/11/14/method-chaining-in-javascript.html

+0

即使對於第二個(新Q(值)...)它是否正確? – Utkarsh

+0

是的,即使是第二個。 – haltersweb

2

你的「解釋」只是移除管線的飼料和空格。 結果在功能上與更具可讀性的多行版本相同。

+0

我的解釋是否正確?因爲我不太瞭解像JS這樣的多行代碼是如何分析的。 btw謝謝你的回覆:) – Utkarsh

+0

你的解釋是正確的。 – haltersweb