js class expression
2016-01-20 10:23
495 查看
The class expression is one way define a class in ECMAScript 2015 (ES6). Similar to function
expressions, class expressions can be named or unnamed. If named, the name of the class is local the class body only. JavaScript classes are using prototype-based inheritance.
A class expression has a similar syntax to a class statement.
However, with class expressions, you are able to omit the class name ("binding identifier"), which you can't with class statements.
Just like with class statements, the class body of class expressions is executed in strict
mode.
This is just a simple anonymous class expression which you can refer to using the variable "Foo".
If you want to refer to the current class inside the class body, you can create a named class expression. This name is only visible in the scope of the class expression itself.
expressions, class expressions can be named or unnamed. If named, the name of the class is local the class body only. JavaScript classes are using prototype-based inheritance.
Syntax
var MyClass = class [className] [extends] { // class body };
Description
A class expression has a similar syntax to a class statement.However, with class expressions, you are able to omit the class name ("binding identifier"), which you can't with class statements.
Just like with class statements, the class body of class expressions is executed in strict
mode.
Examples
A simple class expression
This is just a simple anonymous class expression which you can refer to using the variable "Foo".[code]var Foo = class { constructor() {} bar() { return "Hello World!"; } }; var instance = new Foo(); instance.bar(); // "Hello World!" Foo.name; // ""
Named class expressions
If you want to refer to the current class inside the class body, you can create a named class expression. This name is only visible in the scope of the class expression itself.[code]var Foo = class NamedFoo { constructor() {} whoIsThere() { return NamedFoo.name; } } var bar = new Foo(); bar.whoIsThere(); // "NamedFoo" NamedFoo.name; // ReferenceError: NamedFoo is not defined Foo.name; // "NamedFoo"
相关文章推荐
- 我理解的javascript万物皆对象
- js instanceof
- JS在遍历二维数组的时候会出现无限遍历,卡死的问题
- 好玩的js特效
- JavaScript清除Cookie完全攻略--被domain和path折磨
- JavaScript 的 Prototype 原型链详解(转)
- 动态加载JavaScript
- js typeof
- javascript数据类型
- 用JS获取url参数的方法
- js 获取范围内的随机数
- 搭建AngualarJS开发环境
- JSON遇到懒加载错误解决方案
- JavaScript高级程序设计学习笔记一在HTML中使用JS
- Javascript模板引擎mustache.js详解
- script中js导入外部js文件
- js实现图片无缝滚动特效
- cookie、session、sessionid 与jsessionid
- moon session jsessionid cookie 重写URL post cookie
- Day-21 js中的事件(event)