ES6类与模块
class Animal {
// 构造方法,实例化的时候会被调用,如果不指定,那么会有一个不带参数的默认构造函数
constructor(name, color) {
this.name = name;
this.color = color;
}
// toString 是原型对象上的属性
toString() {
console.log('name: ' + this.name + ',color: ' + this.color);
}
}
var animal = new Animal('dog', 'white');
animal.toString(); // name: dog,color: white
console.log(animal.hasOwnProperty('name')); // true
console.log(animal.hasOwnProperty('toString')); //false
console.log(animal.__proto__.hasOwnProperty('toString')); //true
class Cat extends Animal {
constructor(action) {
// 子类必须要在constructor中指定super方法,否则在新建实例的时候会报错
super('cat', 'white');
this.action = action;
}
toString() {
super.toString();
}
}
var cat = new Cat('catch');
cat.toString();
console.log(cat instanceof Cat); // true
console.log(cat instanceof Animal); // true
类的 prototype 属性和 __proto__ 属性
class Animal {
// 构造方法,实例化的时候会被调用,如果不指定,那么会有一个不带参数的默认构造函数
constructor(name, color) {
this.name = name;
this.color = color;
}
// toString 是原型对象上的属性
toString() {
console.log('name: ' + this.name + ',color: ' + this.color);
}
}
class Cat extends Animal {
constructor(action) {
// 子类必须要在constructor中指定super方法,否则在新建实例的时候会报错
super('cat', 'white');
this.action = action;
}
toString() {
super.toString();
}
}
var cat = new Cat('catch');
console.log(Cat.__proto__ === Animal); // true
console.log(Cat.prototype.__proto__ == Animal.prototype); // true
class Cat {}
console.log(Cat.__proto__ === Function.prototype); // true
console.log(Cat.prototype.__proto__ === Object.prototype); // true
ES6类与模块的更多相关文章
- ES6快速入门(三)类与模块
类与模块 一.类 一)类的声明 class Person { constructor(name) { this.name = name; } sayName() { console.log(this. ...
- ES6中的模块
前面的话 JS用"共享一切"的方法加载代码,这是该语言中最容出错且容易令人感到困惑的地方.其他语言使用诸如包这样的概念来定义代码作用域,但在ES6以前,在应用程序的每一个JS中定义 ...
- ES6 类(Class)基本用法和静态属性+方法详解
原文地址:http://blog.csdn.net/pcaxb/article/details/53759637 ES6 类(Class)基本用法和静态属性+方法详解 JavaScript语言的传统方 ...
- 我的Vue之旅、02 ES6基础、模块、路径、IO
自定义模块 为什么要模块?模块化源代码能给我们带来什么好处? 试想一个巨无霸网购平台,在没有模块化的情况下,如果出现bug,程序员就要在几百万行代码里调试,导致后期维护成本上升,为了解决问题,模块化按 ...
- Python中函数、类、模块和包的调用
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
- javascript基础知识-类和模块
在JavaScript中可以定义对象的类,让每个对象都共享这些属性. 在JavaScript中,类的实现是基于其原型继承机制的.如果两个实例都从同一个原型对象上继承了属性,我们就说它们是同一个类的实例 ...
- [python基础]关于包,类,模块的那些事儿
转载请注明出处:http://www.cnblogs.com/codefish/p/5032753.html 在理解python的包,类,模块之前,我一直是将他类比为dll,C#的类,命名空间的这种参 ...
- React与ES6(三)ES6类和方法绑定
React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...
- 第九章:Javascript类和模块
(过年了,祝大家新年好!) 第6章详细介绍了javascript对象,每个javascript对象都是一个属性集合,相互之间没有任何联系.在javascript中也可以定义对象的类,让每个对象都共享某 ...
随机推荐
- Tornado sqlalchemy
上篇文章提到了,最近在用 Python 做一个网站.除了 Tornado ,主要还用到了 SQLAlchemy.这篇就是介绍我在使用 SQLAlchemy 的过程中,学到的一些知识. 首先说下,由于最 ...
- [C#]循环输出 000 - 999999
循环输出 000 - 999999 ; i < ; i++) { , i.ToString().Length); j < 7; j++) { Debug.WriteLine(i.ToStr ...
- LaTex学习笔记(一):review
1.百分号 \% 2.下标 b_{ij} 3.表格(excel2latex) 符号说明 \begin{table}[H] \centering \begin{tabular}{m{100pt}< ...
- hibernate进行多表联合查询
hibernate是按照hql语句来进行查询的, 里面所使用的表名, 其实是实体类的名字, hql语句的写法并没有多大差别, 是在返回结果的时候要稍微做一些处理 //使用hibernate进行多表查询 ...
- 利用Lambda获取属性名称
感谢下面这篇博文给我的思路: http://www.cnblogs.com/daimage/archive/2012/04/10/2440186.html 上面文章的博主给出的代码是可用的,但是调用方 ...
- live555 直播arm-linux视频
live555例程testOnDemandRTSPServer.cpp启动一个流服务器 首先启动使用环境, TaskScheduler* scheduler = BasicTaskScheduler: ...
- LeetCode OJ-- Wildcard Matching **@
https://oj.leetcode.com/problems/wildcard-matching/ 模拟通配符的匹配 做法非常好 class Solution { public: bool isM ...
- SQL多行转多列
--★转换结果如上图 1.首先创建表: CREATE TABLE [成绩表]( ,) NOT NULL, )NULL, , )NULL, , )NULL, , )NULL ) ON [PRIMARY] ...
- 【转】Linux下打包压缩war和解压war包
解压demo.war $ mkdir demo //解压前建议先创建目录,否则直接解压到当前目录了 $ cd demo/ $ jar -xvf ../demo.war 解压到指定的demo目录,然后就 ...
- 从一个Fragment跳转到另一个Fragment
我们知道Activity之间的跳转可以使用 startActivity(intent).但Fragment之间的跳转却不能使用该方法,那该怎么办呢? 直接上代码: 核心代码 @Override//核心 ...