// 建立一個 Table 建構式, 可存放 key-value function Table(name) { this.name = name; this.entries = []; this.addEntry = function (key, value) { this.entries.push({ key: key, value: value }); }; // f : 傳入一個方法當 callback, thisArg : 傳入一個物件當接收者 this.forEach = function (f, thisArg) { var entries = this.entries; // 本身的值 (呼叫 forEach 的物件) for (var i = 0, n = entries.length; i < n; i++) { var entry = entries[i]; f.call(thisArg, entry.key, entry.value, i); } }; } // 實例一個 Table 然後加入一些資料 var tab1 = new Table('tab1'); tab1.addEntry(1, 'apple'); tab1.addEntry(2, 'ball'); tab1.addEntry(3, 'city'); // 再實例一個 Table var tab2 = new Table('tab2'); // 將tab1的資料複製到tab2 tab1.forEach(tab2.addEntry, tab2);
2014年3月1日 星期六
call 方法使用在高階函示中
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言