"">
javascript 箭头函数
ECMAScript6 可以用箭头 "=>" 定义函数。
或
- x => x * x
与匿名函数
- (x) => {return x * x;}
相等。
- function(x){return x * x;}
- var f = () = > 9;
- console.log(f()); //9
- var f = x = > x * x;
- console.log(f(3)); //9
- var f = x = > {
- return x * x;
- };
- console.log(f(3)); //9
- var f = (x) = > x * x;
- console.log(f(3)); //9
- var f = (x) = > {
- return x * x;
- };
- console.log(f(3)); //9
- var f = (x, y) = > x * y;
- console.log(f(2, 3)); //6
- var f = (x, y , ...more) = > {
- var multiply = x * y;
- for (var i = 0; i < more.length; i++) { multiply *= more[i];
- }
- return multiply;
- };
- console.log(f(2, 3, 4, 5)); //120
- var f = [1, 2, 3].map(x = > x * x);
- console.log(f); //[1, 4, 9]
- var f = [1, 2, 3].reduce((x, y) = > x + y);
- console.log(f); //6
箭头函数中的 this 总是指向外层作用域,即使在内层函数里面,所以可以不用写
。
- var that = this;
- var obj = { name: 'mazey',
- f:
- function() {
- var myName = () = > this.name; //这里的this指向obj
- return myName();
- }
- };
- console.log(obj.f()); //mazey
因为对象和块的冲突问题,箭头函数返回一个如
的对象必需用
- {name:'mazey'}
括起来。
- ()
- var f = () = > {
- name: 'mazey'
- };
- console.log(f()); //undefined
- var f = () = > ({
- name: 'mazey'
- });
- console.log(f()); //{name: "mazey"}
- <script>
- var f = () = > 9;
- console.log(f()); //9
- var f = x = > x * x;
- console.log(f(3)); //9
- var f = x = > {
- return x * x;
- };
- console.log(f(3)); //9
- var f = (x) = > x * x;
- console.log(f(3)); //9
- var f = (x) = > {
- return x * x;
- };
- console.log(f(3)); //9
- var f = (x, y) = > x * y;
- console.log(f(2, 3)); //6
- var f = (x, y , ...more) = > {
- var multiply = x * y;
- for (var i = 0; i < more.length; i++) { multiply *= more[i];
- }
- return multiply;
- };
- console.log(f(2, 3, 4, 5)); //120
- var f = [1, 2, 3].map(x = > x * x);
- console.log(f); //[1, 4, 9]
- var f = [1, 2, 3].reduce((x, y) = > x + y);
- console.log(f); //6
- var obj = { name: 'mazey',
- f:
- function() {
- var myName = () = > this.name; //这里的this指向obj
- return myName();
- }
- };
- console.log(obj.f()); //mazey
- var f = () = > {
- name: 'mazey'
- };
- console.log(f()); //undefined
- var f = () = > ({
- name: 'mazey'
- });
- console.log(f()); //{name: "mazey"}
- </script>
ECMAScript6 箭头函数 ArrowFunction"=>"
来源: http://www.bubuko.com/infodetail-2214380.html