js高級程序設計第三章(部分整理)

3.6.8 with語句
with語句將代碼的作用域設置到一個特定的對象中,目的:為了簡化多次編寫同一個對象的工作,用法如下:
with(expression) statement;

var hostName = localhost.hostName;
var id = localhost.user.id
//上面代碼和下面相同
with(localhost) {
  var hostName = hostName;
  var id = user.id
}

下方的代碼,用with關聯(lián)了localhost對象。在代碼塊內的每個變量被認為是一個局部變量,若在局部環(huán)境中找不到該變量,則會查詢關聯(lián)的localhost對象是否有同名屬性。(相當于把該代碼塊的上層作用域改為關聯(lián)的對象)
注意嚴格模式下不可以使用with,視為語法錯誤。

3.7.1 理解參數(shù)
可以向js函數(shù)傳遞任意數(shù)量的參數(shù),并可以通過arguments對象來訪問這些參數(shù)。

function getLength() {
  alert(arguments.length);
  alert(arguments[0]);//輸出參數(shù)列表的第一個
}
getLength(1, 2);//輸出2 1
getLength("hello world");//輸出1 hello world

3.7.2 不支持傳統(tǒng)意義上的重載
js函數(shù)沒有函數(shù)簽名(接受參數(shù)的類型和數(shù)量),因為其參數(shù)都是由包含0或多個值的數(shù)組來表示,而沒有函數(shù)簽名,故不存在真正的重載。(函數(shù)名字相同而函數(shù)簽名不同,則為不同函數(shù))可以通過再函數(shù)內判斷arguments的長度或特定值來的不同來執(zhí)行不同的代碼來實現(xiàn)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容