iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
Modern Web

YDKJS 一邊讀 You Don't Know JS Yet 一邊卡關一邊弄懂的日子 ԅ(≖‿≖ԅ)系列 第 19

Day19 - this&Object Prototypes Ch3 Objects - Iteration

  • 分享至 

  • xImage
  •  

object 沒有內建的 @@iterator,作者帶我們自己建一個看看

var myObject = {
    food: '燃麵',
    vegetable: '生菜',
    seasoning: '花椒'
};

Object.defineProperty(myObject, Symbol.iterator, {
    enumerable: false,
    writable: false,
    configurable: true,
    value: function() {
        var _this = this;
        var idx = 0;
        var keysList = Object.keys( _this );
        return {
            next: function() {
                return {
                    value: _this[keysList[idx++]],
                    done: (idx > keysList.length)
                };
            }
        };
    } 
}); 

var it = myObject[Symbol.iterator]();
console.log(it.next()); // { value:'燃麵', done:false } 
console.log(it.next()); // { value:'生菜', done:false } 
console.log(it.next()); // { value:'花椒', done:false } 
console.log(it.next()); // { done:true }

for (var v of myObject) {
    console.log( v );
} // '燃麵', '生菜', '花椒'

上一篇
Day18 - this&Object Prototypes Ch3 Objects - Iteration 開頭
下一篇
Day20 - this&Object Prototypes Ch3 Objects - Review 開頭
系列文
YDKJS 一邊讀 You Don't Know JS Yet 一邊卡關一邊弄懂的日子 ԅ(≖‿≖ԅ)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言