ECMAScript 6,es6 get和set的区别

0x00 前言: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)。日常场合,这两个词是可以互换的。

0x01 示例

先说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);

0x02 总结

当然,我这仅仅是简单举个例子,应该还有更多实用的语法。

 

上一篇:ES6系列-什么是ES6?新手应该怎么理解


下一篇:Php / Python /ECMA 中的基础数据结构定义