簡體   English   中英

javascript函數定義中的對象

[英]object in javascript function definition

我的朋友只是制作一些無意義的代碼,或者至少我認為他是,但令我驚訝的是它並沒有拋出任何錯誤。 然而,他並沒有按照他的預期行事,因為他並不真正知道他在做什么。 但現在我很好奇它做了什么,因為必須有一些原因它不會引發錯誤。 代碼看起來像這樣:

var n = function(someArg, anotherArg, {help: []}){};

此外,在向對象添加數據時,會引發錯誤:

var n = function(someArg, anotherArg, {help: ["something"]}){};

拋出:'Uncaught SyntaxError:Unexpected string'

為什么允許隨機參數?

這是EcmaScript 6 參數的解構 如果將函數定義為:

function myfun({help: [a, b, c]}) {}

然后你可以把它稱為:

myFun({help: [1, 2, 3]});

並且將結合的論點ab ,和c12 ,和3分別。 你的例子只是一個簡並的例子,其中包含變量的數組是空的。

在解構參數列表中,表達式可以放在普通對象或數組文字中的位置必須包含變量名稱,因為這是將綁定到參數對象/數組中相應元素的變量。 這就是為什么第二個版本產生錯誤: "something"不是變量名,它是一個字符串,因此不能在模式中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM