- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ECMAScript 6 新特性
箭头函数和静态this(Arrows and Lexical This)
箭头函数使用胖箭头(=)语法,与C#,Java 8和CoffeeScript类似。支持表达式和语句作为函数体。不像普通函数,箭头函数的this是和文法作用域绑定的。
// 表达式作为函数体
var odds = evens.map(v = v + 1);
var nums = evens.map((v, i) = v + i);
// 语句作为函数体
nums.forEach(v = {
if (v % 5 === 0)
fives.push(v);
});
// 静态this
var bob = {
_name: Bob,
_friends: [],
printFriends() {
this._friends.forEach(f =
console.log(this._name + knows + f));
}
};
类(Classes)
ES2015中的类是对基于原型面向对象模式的一个简单语法糖。有一个单一的声明形式可以使类模式更容易使用,并鼓励互操作性。类支持基于原型的继承,超类调用(super),实例方法,静态方法和构造函数。
class SkinnedMesh extends THREE.Mesh {
constructor(geometry, materials) {
super(geometry, materials);
this.idMatrix = SkinnedMesh.defaultMatrix();
this.bones = [];
this.boneMatrices = [];
//...
}
update(camera) {
//...
super.update();
}
static defaultMatrix() {
return new THREE.Matrix4();
}
}
增强对象字面量(Enhanced Object Literals)
对象字面量被扩展支持直接设置原型,简洁属性赋值和方法,超类调用。这也让对象字面量和类声明的关系更密切,并让基于对象的设计更便利。
var obj = {
// __proto__
__proto__: theProtoObj,
// 下面的写法不会设置内部原型
__proto__: somethingElse,
// ‘handler: handler’的简写
handler,
// 方法
toString() {
// 调用父对象的方法
return d + super.toString();
},
// 属性名是一个表达式
[ prop_ + (() = 42)() ]: 42
};
__proto__属性需要原生支持,这一属性在ECMAScript前一个版本中一度被废弃。目前为止,大部分引擎支持这一属性。同时需要注意,仅仅web浏览器需要实现这一属性,在Node中现在就可使用。
模版字符串(Template Strings)
模版字符串提供构建字符串的语法糖。这类似Perl,Python等其他语言中的字符串插值。可以选择性添加一个标签,允许对字符串构建的定制化,避免注入攻击或其他需求。
// 普通字符串
`This is a pretty little template string.`
// 多行字符串
`In ES5 this is
not legal.`
// 字符串中嵌入变量
var name = Bob, time = today;
`Hello ${name}, ${time}?`
// 模版标签
String.raw`In ES5 \n is a line-feed.`
// 下面构造一个HTTP请求头,来解释差值替换和构造
GET`/bar?a=${a}b=${b}
Content-Type: application/json
X-Credentials: ${credentials}
{ foo: ${foo},
bar: ${bar}}`(myOnReadyStateChangeHandler);
解构(Destructuring)
按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。解构失败是静默的,类似标准的对象属性查找foo[“bar”],找不到值则为undefined。
// 列表匹配
您可能关注的文档
- 宝石及材料工艺学全解.doc
- DP总线电缆连接及故障诊断.pptx
- 宝钢集团分析报告(完整版)全解.ppt
- Dreamweaver网页制作第1章 创建站点.ppt
- DS9LC01说明书.pdf.doc
- DSP-TMS320C54X片内外设和中断系统-课件.ppt
- DSP-基于TMS320C54XDSP软硬件完整系统的开发-课件.ppt
- DSP最小系统设计-课件.ppt
- DTM.PX.016.901-TD-LTE高层信令-v1.0.0.ppt
- E06-01幼托地块幼儿园静压桩监理细则.doc
- 【原创】2013年高考化学 教材回归详析:8.3盐类的水解.doc
- 【历届高考试题】2012版《6年高考4年模拟》:机械能.doc
- 【高考领航】2015届高考化学新一轮总复习 课时作业:37第十二章第一讲.doc
- 【中考物理第二轮复习资料】点击考纲,考前必读.doc
- 【原创】2013年高考化学 教材回归详析:9.2 电解池 金属的电化学腐蚀与防护(选修).doc
- 【高考领航】2015届高考化学新一轮总复习 课时作业:30第九章第二讲.doc
- 【原创】2013年高考化学 教材回归详析:8.2 水的电离和溶液的酸碱性.doc
- 高中英语考试340个高频词组.docx
- 高中化学反应的方向及判据知识点典例解析.docx
- 技能培训资料:焦炉调火技术.docx
文档评论(0)