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类与模块的更多相关文章

  1. ES6快速入门(三)类与模块

    类与模块 一.类 一)类的声明 class Person { constructor(name) { this.name = name; } sayName() { console.log(this. ...

  2. ES6中的模块

    前面的话 JS用"共享一切"的方法加载代码,这是该语言中最容出错且容易令人感到困惑的地方.其他语言使用诸如包这样的概念来定义代码作用域,但在ES6以前,在应用程序的每一个JS中定义 ...

  3. ES6 类(Class)基本用法和静态属性+方法详解

    原文地址:http://blog.csdn.net/pcaxb/article/details/53759637 ES6 类(Class)基本用法和静态属性+方法详解 JavaScript语言的传统方 ...

  4. 我的Vue之旅、02 ES6基础、模块、路径、IO

    自定义模块 为什么要模块?模块化源代码能给我们带来什么好处? 试想一个巨无霸网购平台,在没有模块化的情况下,如果出现bug,程序员就要在几百万行代码里调试,导致后期维护成本上升,为了解决问题,模块化按 ...

  5. Python中函数、类、模块和包的调用

    初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...

  6. javascript基础知识-类和模块

    在JavaScript中可以定义对象的类,让每个对象都共享这些属性. 在JavaScript中,类的实现是基于其原型继承机制的.如果两个实例都从同一个原型对象上继承了属性,我们就说它们是同一个类的实例 ...

  7. [python基础]关于包,类,模块的那些事儿

    转载请注明出处:http://www.cnblogs.com/codefish/p/5032753.html 在理解python的包,类,模块之前,我一直是将他类比为dll,C#的类,命名空间的这种参 ...

  8. React与ES6(三)ES6类和方法绑定

    React与ES6系列: React与ES6(一)开篇介绍 React和ES6(二)ES6的类和ES7的property initializer React与ES6(三)ES6类和方法绑定 React ...

  9. 第九章:Javascript类和模块

    (过年了,祝大家新年好!) 第6章详细介绍了javascript对象,每个javascript对象都是一个属性集合,相互之间没有任何联系.在javascript中也可以定义对象的类,让每个对象都共享某 ...

随机推荐

  1. Tornado sqlalchemy

    上篇文章提到了,最近在用 Python 做一个网站.除了 Tornado ,主要还用到了 SQLAlchemy.这篇就是介绍我在使用 SQLAlchemy 的过程中,学到的一些知识. 首先说下,由于最 ...

  2. [C#]循环输出 000 - 999999

    循环输出 000 - 999999 ; i < ; i++) { , i.ToString().Length); j < 7; j++) { Debug.WriteLine(i.ToStr ...

  3. LaTex学习笔记(一):review

    1.百分号 \% 2.下标 b_{ij} 3.表格(excel2latex) 符号说明 \begin{table}[H] \centering \begin{tabular}{m{100pt}< ...

  4. hibernate进行多表联合查询

    hibernate是按照hql语句来进行查询的, 里面所使用的表名, 其实是实体类的名字, hql语句的写法并没有多大差别, 是在返回结果的时候要稍微做一些处理 //使用hibernate进行多表查询 ...

  5. 利用Lambda获取属性名称

    感谢下面这篇博文给我的思路: http://www.cnblogs.com/daimage/archive/2012/04/10/2440186.html 上面文章的博主给出的代码是可用的,但是调用方 ...

  6. live555 直播arm-linux视频

    live555例程testOnDemandRTSPServer.cpp启动一个流服务器 首先启动使用环境, TaskScheduler* scheduler = BasicTaskScheduler: ...

  7. LeetCode OJ-- Wildcard Matching **@

    https://oj.leetcode.com/problems/wildcard-matching/ 模拟通配符的匹配 做法非常好 class Solution { public: bool isM ...

  8. SQL多行转多列

    --★转换结果如上图 1.首先创建表: CREATE TABLE [成绩表]( ,) NOT NULL, )NULL, , )NULL, , )NULL, , )NULL ) ON [PRIMARY] ...

  9. 【转】Linux下打包压缩war和解压war包

    解压demo.war $ mkdir demo //解压前建议先创建目录,否则直接解压到当前目录了 $ cd demo/ $ jar -xvf ../demo.war 解压到指定的demo目录,然后就 ...

  10. 从一个Fragment跳转到另一个Fragment

    我们知道Activity之间的跳转可以使用 startActivity(intent).但Fragment之间的跳转却不能使用该方法,那该怎么办呢? 直接上代码: 核心代码 @Override//核心 ...