首页 > 其他分享 >ES5和ES6的继承

ES5和ES6的继承

时间:2023-06-21 16:25:02浏览次数:50  
标签:ES6 ES5 console name 继承 子类 age 父类 构造函数

(1)ES5

// 构造函数
function Person(name) {
this.name = name
}
// 原型
Person.prototype.say = function () {
console.log('我是' + this.name)
}
// 子类构造函数继承父类构造函数
function Son(name, age) {
// 调用父类构造函数,让父类中的this指向当前子类
Person.call(this, name)
// 添加子类自己的属性
this.age = age
}
// 子类的原型继承父类的原型,让子类的原型指向父类实例化的对象
Son.prototype = new Person()
//添加子类自己的方法
Son.prototype.run = function () {
console.log('我今年xxx' + this.age)
}

// 通过子类实例化对象
var p1 = new Son('xin', 18)
console.log(p1)
p1.say()

(2)ES6

class Person {
// 构造函数,在实例化对象的时候,自动调用
constructor(name) {
this.name = name
}
// 添加在原型对象
say() {
console.log('我是' + this.name)
}
}
// 子类继承父类
class Son extends Person {
constructor(name, age) {
// 继承父类构造函数
super(name)
// 添加子类属性
this.age = age
}
// 父类的原型会自动的继承
// 添加子类的方法
run() {
console.log('xxx' + this.age)
}
}
// 通过子类实例化对象
const p1 = new Son('xin', 18)
console.log(p1)

 

标签:ES6,ES5,console,name,继承,子类,age,父类,构造函数
From: https://www.cnblogs.com/le-cheng/p/17496535.html

相关文章

  • NodeJS系列(3)- ECMAScript 6 (ES6) 语法(一)
    ECMAScript6(ES6)是最新的JavaScript语言的标准化规范,它的目标是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。本文在“NodeJS系列(2)-在NPM项目里使用ECMAScript6(ES6)规范”的npmdemo的基础上,介绍并演示let、const、Symbol等ES6语法......
  • AppWidgetProvider的继承
    publicclassWlanWidgetextendsAppWidgetProvider{RemoteViewsremoteViews;AppWidgetManagerappWidgetManager;ComponentNamethisWidget;WifiManagerwifiManager;publicvoidonUpdate(Contextcontext,AppWidgetManagerappWidgetManager,in......
  • linearlayout继承扩展篇
    前面写了一个一个linearLayout,只不过那个只是继承了一个属性,在群聊的时候有人问想在扩展的时候添加几个按钮,作为一个封装用,于是我就试了一下效果还不错:我做了一个人工的进度条可以加可以减主函数很简单就一句话setContentView(R.layout.main);相比大家都明白所有的东西都在main.......
  • C++继承和派生
    #继承和派生在C++中,继承和派生是面向对象编程的两个重要概念,用于实现类与类之间的关系。继承是指一个类可以从另一个类中继承属性和方法,并且可以在此基础上扩展出自己的属性和方法。被继承的类称为基类(父类),继承的类称为派生类(子类)。在C++中,可以通过以下方式定义一个派生类:```c++cl......
  • python3 面向对象编程--类的封装和继承
    #python3importrefromurllibimportrequestimportosclassPosterSpider(object):def__init__(self,path='./'):self.path=path#theentryofthisprocessdefgetStart(self,url):page=self.reqPage(url)......
  • java--继承
       ......
  • Java面向对象编程的三大特性:封装、继承、多态。
    一、封装封装的核心在于私有化(private),大部分情况下,来封装对象的属性,很少有封装方法的。通过将对象的属性封装,提供对外的公共方法来访问属性是最常见的方式。publicstaticclassFengZhuang{//通过封装,设置私有属性privateStringname;privat......
  • 《C++》继承
    继承classA:publicB子类:继承方式父类classPhone{public: Phone() { frame="框架"; screen="屏幕"; battery="电池"; }public: stringframe; stringscreen; stringbattery;};classBrand:publicPhone{public: Brand(strin......
  • Lua 中如何实现继承
    本文主要参考了菜鸟教程中的Lua面向对象,再加上自己学习过程的中思考,特此记录,如果文中有不对的地方,请不吝赐教。这里就不在介绍面向对象的基本思想了,主要讲一讲Lua中如何实现继承,包括单继承和多继承。1、如何定义一个类我们知道,对象由属性和方法组成。Lua中最基本的结构......
  • 面向对象-继承
    面向对象的继承是一种机制,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。继承可以使代码重用、提高代码的可扩展性和灵活性。通过继承,子类可以继承父类的非私有属性和方法,并且可以在子类中添加自己特定的属性和方法。子类可以继承父类的行为,也可以重新定......