爲已有對象添加iterator遍歷器屬性

let obj = {  // 已有對象

    name: 'xss'

    age: 23

};

// 開始

obj[Symbol.iterator] = function(){
    let iterator = {next: next};
    let current = this;
    const keys = Object.keys(current);
    let index = 0;

    function next() {
        if(index<keys.length) {
            return {
                value: keys[index++],  // 注意,這裏返回的是key
                done: false
            }
         } else {
             return {
                 done: true
             }
         }
     }

     return iterator
}

// 使用for...of... 遍歷

for(let k of obj) {

     console.log(k+':'+obj[k])

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章