// function的寫法
function fn(a, b)
// 箭頭函式的寫法
let foo = (a, b) =>
在function中,this指向的是呼叫該函式的物件;
//使用function定義的函式
function foo()
var obj = ;
foo(); //window
obj.aa() //obj
而在箭頭函式中,this永遠指向定義函式的環境。
//使用箭頭函式定義函式
var foo = () => ;
var obj = ;
foo(); //window
obj.aa(); //window
function timer() , 1000); // 這裡的this指向timer
// 普通函式
setinterval(function () , 1000);
}var timer = new timer();
settimeout(() => console.log('s1: ', timer.s1), 3100);
settimeout(() => console.log('s2: ', timer.s2), 3100);
// s1: 3
// s2: 0
//使用function方法定義建構函式
function person(name, age)
var lenhart = new person(lenhart, 25);
console.log(lenhart); //
//嘗試使用箭頭函式
var person = (name, age) =>;
var lenhart = new person('lenhart', 25); //uncaught typeerror: person is not a constructor
function存在變數提公升,可以定義在呼叫語句後;
foo(); //123
function foo()
箭頭函式以字面量形式賦值,是不存在變數提公升的;
arrowfn(); //uncaught typeerror: arrowfn is not a function
var arrowfn = () => ;
console.log(f1); //function f1() {}
console.log(f2); //undefined
function f1() {}
var f2 = function() {}
ES6新特性之變數與箭頭函式
es6中新增了let與const來定義變數 console.log a 這裡的a指的是 塊裡的a上方 可以輸出結果為1,因為var是全域性宣告的,所以,即使是在區塊裡宣告,但仍在全域性起作用 再來看看下面這段 var a 1 console.log a 輸出為2,因為var是全域性宣告的 總結 用v...
ES6特性 箭頭函式
es6允許使用 箭頭 定義函式。基本語法 引數 函式體 var f v v 等價於 var f function v 如果箭頭函式不需要引數或需要多個引數,需要使用 括起來 var f 1 等價於 var f function var sum a,b a b 等價於 var sum function...
ES6新特性 函式的簡寫(箭頭函式)
var fn function 例如 var add function a,b 或者 function fn 例如 function add a,b 將原函式的 function 關鍵字和函式名都刪掉,並使用 連線引數列表和函式體。function add a,b 簡寫為 a,b var add f...