基本语法 继承 私有属性与方法.静态属性与方法 修饰器(Decorator) 一.基本语法 class Grammar{ constructor(name,age){ //定义对象自身的方法和属性 this.name = name, this.age = age } // 在原型上定义只读属性 get inva(){ return "JS"; } //在原型上定义可读写属性 set skill(val){ this._skill = val; } get skill(){ return…
1.Class的基本用法 概述 JavaScript语言的传统方式是通过构造函数,定义并生成新对象.这种写法和传统的面向对象语言差异很大,下面是一个例子: function Point(x, y) { this.x = x; this.y = y; }; Point.prototype.toString = function () { return '(' + this.x + ',' + this.y + ')'; }; var p = new Point(1, 2); console.log…
原文地址:http://blog.csdn.net/pcaxb/article/details/53759637 ES6 类(Class)基本用法和静态属性+方法详解 JavaScript语言的传统方法是通过构造函数,定义并生成新对象,prototype 属性使您有能力向对象添加属性和方法.下面是通过传统的方式创建和使用对象的案例: <span style="font-size:18px;">//Person.js function Person(x,y){ this.x…
静态方法只能写在class内,constructor外.通过static关键字声明 静态属性只能写在class外,通过 类名.属性名 = 属性值 声明 //静态属性与静态方法(ES6明确规定,Class内部只有静态方法,没有静态属性 ) //1.不会被类实例所拥有的属性与方法,只是类自身拥有 //2.只能通过类调用 //通过static关键字声明一个静态方法 class Car{ constructor(){ Car.totalCar += 1; this.speed = 0; } speedU…
webpack4打包配置babel7转码ES6 Module语法与API的使用 import() Module加载实现原理 Commonjs规范的模块与ES6模块的差异 ES6模块与Nodejs模块相互加载 模块循环加载 一.webpack4打包配置babel7转码ES6 1.webpack.config.js 在webpack中配置babel转码其实就是在我之前的webpack配置解析基础上添加babel的加载器,babel的具体转码配置在之前也有一篇详细的博客做了解析: webpack安装与…
ES6入门笔记 02 Let&Const.md 增加了块级作用域. 常量 避免了变量提升 03 变量的解构赋值.md var [a, b, c] = [1, 2, 3]; var [[a,d], b, c] = [[1,4], 2, 3]; var [...a] = [1,2] var [c = 3] = [5] //默认值 var { foo, bar } = { foo: "aaa", bar: "bbb" }; 作用. 复杂的 json & a…
对函数拓展兴趣更大一点,优先看,前面字符串后面再说,那些API居多,会使用能记住部分就好. 一.函数参数可以使用默认值 1.默认值生效条件 在变量的解构赋值就提到了,函数参数可以使用默认值了.正常我们给默认值是这样的: //ES5 function log(x, y) { y = y || "echo"; console.log(x, y); }; log('hello')//hello echo 如果y未赋值则为假,那就取后面的默认赋值,很巧妙,但是有个问题,假设我y就是想传递一个f…
let和const 一.块级作用域 ES5 只有全局作用域和函数作用域,没有块级作用域,这样的缺点是:1.用来计数的循环变量泄露为全局变量.2.内层变量可能会覆盖外层变量 var tmp = new Date(); function f() { console.log(tmp); if (false) { var tmp = 'hello world'; } } f(); // undefined 输出结果为undefined,原因在于变量提升,导致内层的tmp变量覆盖了外层的tmp变量 var…
在ES6之前,准确来说JavaScript语言并无类的概念,却有模拟类的做法.相比在类似java这类传统面向对象语言中通过类来生成实例,js则通过构造函数模拟类来生成实例. 这是因为在JS设计初期,作者Brendan Eich选择使用原型来描述对象而非类,但被管理层要求模仿java,因此引入了new this等语言特性,也就是我们所使用的构造函数做法. 那么自ES6起,JavaScript正式引入了class关键字,自此我们也可以通过class来定义类了. 但需要清楚的是ES6中class只是构…
let和const命令 let命令 循环体的let变量只对花括号作用域可见,花括号外不可见 循环体的语句部分是一个父作用域,而循环体内部是一个单独的子作用域 let声明的变量不存在变量提升,未声明的使用会报错 只要块级作用域内存在let声明,它所声明的变量就绑定了这个区域,不再受外部的影响 let不允许在相同的作用域重复声明同一个变量,子父级作用域可以同名变量声明 const命令 const常量的值一旦声明就不得改变 const一旦声明变量,就必须立即初始化,不能留到以后赋值 const的作用域…