class与class的继承
class Point{
constructor(x,y){
this.x = x;
this.y = y;
}
toString(){
return '(' + this.x + ',' + this.y + ')';
}
}
var foo = new Point(2,3);
console.log(foo.x);
// es6类完全可以看作构造函数的另一种写法
// type of "function"
// Point === Point.prototype.constructor true
// 构造函数的prototype属性在es6的"类"上继续存在,事实上类的所有方法都定义在类的 prototoye 属性上
// 在类的实例上调用方法,其实就是调用类原型上的方法
// 类的内部定义的所有方法都是不可枚举的
// 类和模块的内部默认使用严格模式
// constructor是类的默认方法通过new命令生成实例对象时自动调用该方法.
// 一个类必须有constructor方法,如果没有显式定义,默认添加一个空的constructor方法
// 类必须使用new来调用,否则报错
// 与es5一样实例的属性除非显式定义在其本身(即this对象上),否则都是定义在原型(即class)上
// class表达式
const myClass = class Me{}
const foo = class{}; // 省略类名
// 类不存在变量提升 (与继承有关)
// 必须在定义后使用,否则报错
// this指向
// 类的方法内部如果含有this,它将默认指向类的实例
// class的取值函数getter和存值函数setter
// class的静态方法
// 在一个方法前加上static关键字就表示该方法不会被实例继承,而是直接通过类调用,称为静态方法
// 父类的静态方法可以被子类继承,静态方法也可以从super对象上调用
// class 实例属性/静态属性
// 在实例属性写法前面加上static关键字就可以了
// class的继承
// class通过extends实现继承
// super关键字表示父类的构造函数
// 子类必须在constructor方法中调用super方法,否则新建实例会报错,这是因为子类没有自己的this对象,而是继承父类的this对象
class point {}
class colorPoint{
constructor() {
super(); // 调用父类constructor方法
}
}
// 在子类的构造函数中只有调用super之后才可以使用this关键字,否则报错
// super关键字
// super关键字及可以当作函数使用,也可以当作对象使用
// super作为函数使用时,代表调用父类的构造函数,只能在子类构造函数中使用,其他地方会报错
// 第二种情况,super作为对象时在普通方法中指向父类的原型对象,在静态方法中指向父类
// super调用父类的方法时,super会绑定子类的this
// 类的prototype属性和__proto__属性
// class作为构造函数的语法糖同时有prototype属性和__proto__属性,因此同时存在两条继承链
// 子类的__proto__属性表示构造函数的继承,总是指向父类
// 子类的prototype属性的__proto__属性表示方法继承,总是指向父类prototype属性
class与class的继承的更多相关文章
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JavaScript的继承实现方式
1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...
- javascript中的继承与深度拷贝
前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- JS继承类相关试题
题目一: //有关于原型继承的代码如下:function Person(name) { this.name = name;}Person.prototype = { getName : f ...
- JS继承之寄生类继承
原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...
- JS继承之借用构造函数继承和组合继承
根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
- 深入浅出JavaScript之原型链&继承
Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...
- 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型
前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.
随机推荐
- 获取主线程Thread.currentThread()
package seday08.thread; /** * @author xingsir * 主线程 * 线程提供了一个静态方法这个方法会将运行这个方法的线程返回:static Thread cur ...
- mysql5.5下载安装教程
下载地址:https://dev.mysql.com/downloads/mysql/ 这里选择的是5.5的版本: 步骤1: 步骤2: 步骤三: 步骤四: 步骤5: 步骤6: 步骤7: 步骤8: 步骤 ...
- delphi使用Chilkat 组件和库从SFTP下载文件
官网地址:https://www.example-code.com/delphiDll/default.asp 实例代码:(不包括全局解锁) 密码生成器:https://www.cnblogs.co ...
- layui table表格 表头与内容列错位问题(只有纵向滚动条的情况)
版本2.4.5 问题展示: 存在问题:正好错位一个纵向滚动条的宽度 思路: 仔细观察th元素及th包裹的子元素div 如下图 发现th宽度莫名的就多了5px 我就纳闷了 解决方案:到table.js ...
- Android 8.1 SystemUI虚拟导航键加载流程解析
需求 基于MTK 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加 思路 需求开始做之前,一定要研读SystemUI Navigation模块的代码流程!!!不要直接去网上copy别人改的需 ...
- AndroidStudio配置好了so文件运行却报错 java.lang.UnsatisfiedLinkError:
报错截图: 解决方法:在app的build.gradle 下的defaultConfig里面添加过滤即可: ndk { abiFilters 'armeabi' //兼容x86cpu架构 需要什么样的 ...
- Cesium 加载 gltf 模型
var viewer = new Cesium.Viewer('cesiumContainer', { /*帮助*/ navigationHelpButton: true, baseLayerPick ...
- (day67)组件、组件化、组件传参、JS补充(命名转换、for in 、数据转换)、css取消选中和模拟小手
目录 一.初识组件 (一)概念 (二)特点 二.组件的分类 (一)根组件 (二)局部组件 (三)全局组件 二.数据组件化 三.组件的传参 (一)父传子 (二)子传父 四.JS补充 (一)与html命名 ...
- Python备份脚本(Win10+Python2.7+PyCharm)
说一下程序来源,是从<Python简明教程>上面看到的程序,试了一下之后,居!然!不!行!!! Google了老半天,也看了好多个博客,也未能解决. 除了一些基本语法问题.字符串中队'\' ...
- 【ES6学习笔记之】Object.assign()
基本用法 Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). const target = { a: 1 }; const sou ...