牛魔王的故事
2021-10-21 14:44:48
鑒于以下代碼:const civic = {make: 'Honda', model: 'Civic'};function logArgs(make, model) { console.log(make); console.log(model)}我想做這個:logArgs(...civic);代替:logArgs(civic.make, civic.model);我得到:(index):39 Uncaught TypeError: Found non-callable @@iterator有什么方法可以解構(gòu)像數(shù)組這樣的對象,還是我試圖做的事情是不可能的?
3 回答

SMILET
TA貢獻1796條經(jīng)驗 獲得超4個贊
在參數(shù)中使用解構(gòu)
const civic = {make: 'Honda', model: 'Civic'};
function logArgs({make, model}) {
console.log(make);
console.log(model)
}
logArgs(civic)

HUX布斯
TA貢獻1876條經(jīng)驗 獲得超6個贊
對于傳播,您需要Symbol.iterator為對象實現(xiàn) a ,因為對象沒有內(nèi)置迭代器。
這種方法只采用值,但任何其他方法都可以工作,比如返回條目。
function logArgs([make, model]) {
console.log(make);
console.log(model)
}
const civic = { make: 'Honda', model: 'Civic' };
civic[Symbol.iterator] = function* () {
yield Object.values(civic);
};
logArgs(...civic);
添加回答
舉報
0/150
提交
取消