ES6-arrows

从今天开始记录学习ES6的知识点,这次学习的是新增:Arrow functions

Arrows以=>为简写形式,特点:

  • 语法简洁
  • 文法固定的this对象
  • 总是匿名函数

语法:

() => { ... } // no parameter
x => { ... } // one parameter, an identifier
(x, y) => { ... } // several parameters

例子:

arrows
var odds = evens.map(v => v + 1);
常规函数
var odds = evens.map(function(v){return v + 1});

用途:

function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) { // (A)
    'use strict';
    return arr.map(function (x) { // (B)
        // Doesn’t work:
        return this.prefix + x; // (C)
    });
};

在严格模式下,匿名函数中的this的值为undefined,这也就是为何上面的例子会报错。

解决方法:

常规方法

1.

function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) {
    var that = this; // (A)
    return arr.map(function (x) {
        return that.prefix + x;
    });
};
  1. 利用数组方法最后可以传入参数
function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) {
    return arr.map(function (x) {
        return this.prefix + x;
    }, this); // (A)
};

3.

function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) {
    return arr.map(function (x) {
        return this.prefix + x;
    }.bind(this)); // (A)
};
arrows
function Prefixer(prefix) {
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function (arr) {
    return arr.map((x) => {
        return this.prefix + x;
    });
};

原文发布于微信公众号 - 前端黑板报(FeHeiBanBao)

原文发表时间:2015-07-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏null的专栏

设计模式——类图以及类与类之间的关系

    设计模式在程序设计上有着很重要的作用,使用设计模式可以使得代码更容易被理解,使得代码更规范,真正实现工程化。 一、用UML表示一个类 ? 类图一般是三行...

3624
来自专栏一英里广度一英寸深度的学习

Leetcode 第一题 《两数之和》

931
来自专栏程序员互动联盟

【C++概念】---vector用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。 一.基本操作 (1)头文件#include<vector>. (2)创建vector对...

3338
来自专栏机器学习从入门到成神

字符串面试题(二)— 间隔字符串逆序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1443
来自专栏技术碎碎念

LeetCode-15-3Sum

Given an array S of n integers, are there elements a, b, c in S such that a + b ...

37611
来自专栏从流域到海域

《笨办法学Python》 第5课手记

《笨办法学Python》 第5课手记 本节内容复习了前两节的内容,并且引入了格式化字符,这节课里的格式化字符与C语言格式化字符,规则没有什么区别。 我把原文代码...

2569
来自专栏机器学习算法与Python学习

Python开发的十个Tips,你知道几个?

下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。

781
来自专栏我是攻城师

Python之numpy的ndarray数组使用方法介绍

NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:

1303
来自专栏老九学堂

C语言这个基础知识,99%的人都了解不全面

说明:这是学C语言最基本的知识点,简单的使用不难, 但是里面的一些细节和原理就值得我们好好推敲了,想要学好C语言或者编程语言的小伙伴,真的可以好好看看哦~

1260
来自专栏有趣的Python

py编程技巧-1.1-如何在列表、字典、集合中根据条件筛选数据

所有代码先加这行解决中文乱码问题 # -*- coding: utf-8 -*- 版本区别注意: py2.7: xrange(); py3.x: ra...

3517

扫码关注云+社区