es5 类与继承

简介: es5 类与继承

ES5定义一个类

function Person(name, sex) {
    // 构造函数
    this.name = name;
    this.sex = sex; // 实例属性,必须要new person 的时候才能被调用
    this.run = function () {
    // 实例方法,必须要new person 的时候才能被调用
        console.log(this.name + "在运动!");
    };
};

创建一个静态方法

Person.getUserInfo = function () {
    // 静态方法
    console.log("我是一个静态方法");
};
Person.getUserInfo(); // 调用静态方法

实例化Person类

let ps = new Person("qiyingcong", "男"); // 实例化Person类
ps.run(); // 调用Person类的run方法
console.log(ps.sex); // 访问Person类的属性

/**
 * 通过原型链来给Person类扩展方法和属性
 * 原型链上的属性和方法会被多个实例共享  构造函数不会
 */
Person.prototype.age = "22";
Person.prototype.work = function () {
   
    console.log("上班是写代码的IT程序员@");
};

es5上的继承分为两种:(原型链)、(对象冒充)

# function Web(name, sex) {
    // Web类继承Person类   是通过对象冒充实现继承
    Person.call(this);  // 对象冒充继承只继承构造函数方法和属性,没法继承(原型链)函数方法和属性
};
Web.prototype = new Person(); // 原型链继承 (又可以继承构造函数的属性方法也可以继承原型链的属性方法)   缺点:实例化子类没法给父类传参
let w = new Web("qiyingcong", "男");

// 原型链加对象冒充组合
function Nax(name, sex) {
   
    Person.call(this, name, sex);
};
Nax.prototype = Person.prototype; // 另一个方法 new Person();
let n = new Nax("qiyingcong", 22); // (实例化子类给父类传参)
目录
相关文章
|
1月前
|
JavaScript 前端开发
es6 类与继承
ES6 的类与继承特性使得 JavaScript 的面向对象编程更加规范和易于维护,提高了代码的可读性和可复用性,广泛应用于各种复杂的 JavaScript 应用程序开发中。
|
2月前
|
安全
ES5/ES6 的继承除了写法以外还有什么区别
ES5 和 ES6 的继承主要区别在于实现机制和语法糖。ES5 通过原型链和构造函数模拟类的继承,而 ES6 引入了 class 关键字,使继承更加直观和简洁,支持 super 调用父类方法,提升了代码可读性和维护性。
类与ES6类之间的继承
类与ES6类之间的继承
|
7月前
|
存储 Java 编译器
【C++】继承 -- 详解(下)
【C++】继承 -- 详解(下)
|
7月前
|
安全 编译器 程序员
【C++】继承 -- 详解(上)
【C++】继承 -- 详解(上)
|
7月前
|
JavaScript 前端开发
ES6如何声明一个类?类如何继承?
ES6如何声明一个类?类如何继承?
48 0
ES5的继承和ES6的继承有什么区别
ES5的继承和ES6的继承有什么区别
78 0
ES5 / ES6 的继承除了写法以外还有什么区别
ES5 / ES6 的继承除了写法以外还有什么区别
110 0
|
JavaScript
【ES6】类
【ES6】类
61 0