ECMAScript 6,es6 get和set的区别
前言:ECMAScript 6是什么
一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?
要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。
该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。
因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)。日常场合,这两个词是可以互换的。
示例
先说get (getter)按我自己的理解,就是
类的属性成了动态的(我的语言能力有限---)、比较官方的说法就是 get
语法将对象属性绑定到查询该属性时将被调用的函数。
class satan{
//可以return返回字符串 成为当前对象status的string属性 get status() { return "有了更搞的扩展性,可以动态设置属性"; }
//也可以这样用
satans = {
a:'a',b:'b',c:'c'
}
get init()
{
return this.satans.a //string a
} } //实例化 satan = new satan(); //控制台打印 console.log(satan.status);
还有个setter 用法也是和上面的差不多
const satan = { blog:[], set push(data) { this.blog.push(data) } } satan.push('aa'); //控制台打印 array aa console.log(satan.blog);
总结
当然,我这仅仅是简单举个例子,应该还有更多实用的语法。
世人慌慌张张,不过图碎银几两