函數的擴展
阿新 • • 發佈:2017-07-18
arr timeout 部分 默認 個數 const con 擴展 clas 一、為函數參數指定默認值
三、箭頭函數
-- 箭頭函數體內沒有arguments對象,如果要用,可以用Rest參數代替。
function fn(a, b){ a = a || 10; b = b || 20; console.log(a + b); } // es5寫法 function fn(a = 10, b = 20){ console.log(a + b); } // es6寫法二、函數的 rest 參數 參數形式為(“...變量名”),用於獲取函數的多余參數,這樣就不需要使用arguments對象了。rest 參數搭配的變量是一個數組,該變量將多余的參數放入數組中。
function add(...values) { let sum = 0; for (var val of values) { sum + = val; } return sum; } add(2, 5, 3)// 10
[1, 2, 3].map(function(x) { return x * x; })1、規則 --如果箭頭函數不需要參數或需要多個參數,就使用一個圓括號代表參數部分。
var sum = (num1, num2) => num1 + num2;
--如果箭頭函數的代碼塊部分多余一條語句,就要使用大括號將它們括起來,並且使用return語句返回。
var sum = (num1, num2) => { return x+ y;}--大括號被解釋為代碼塊,所以如果箭頭函數直接返回一個對象,必須在對象外面加上括號。 2、註意事項 -- 箭頭函數體內沒有自己的this對象,所以在使用的時候,其內部的this就是定義時所在環境的對象,而不是使用時所在環境的對象。
function fn(){ setTimeout(function (){ console.log(this); }, 1000); setTimeout(() => { console.log(this); },1000); } var obj = {a: 1}; fn.call(obj);
const fn = (...arr) => arr;
console.log(fn(1, 2, 3, 4));
-- 不可以當作構造函數,不可以使用new命令,否則會拋出一個錯誤。
const Fn = (a, b) => a + b; const f = new Fn(1, 2);
函數的擴展