`

为JavaScript所有对象添加一个继承方法

阅读更多

本继承方法仍然是基于JavaScript原型属性来实现的.

Function.prototype.inherit = function(parent){
   this.prototype = Object.create(parent.prototype);
   this.prototype.constructor = this;
};

 

 本方法扩展到Function对象上,目的是让JavaScript中所有的构造函数都拥有此方法.

 

参数说明:

       * parent: 被继承的父类构造函数.

用法示例如下:

Function.prototype.inherit = function(parent){
    this.prototype = Object.create(parent.prototype);
    this.prototype.constructor = this;
};

function People(name,age){
   this.name = name;
   this.age = age;
}
People.prototype = {
   getName:function(){
      return this.name;
   },
   say:function(){
      console.log("hello");
   }
};


function Student(name,age,id){
   People.call(this,name,age);
   this.id = id;
}

Student.inherit(People);

Student.prototype.getId = function(){
   return "this id is " + this.id;
};


var s = new Student("Jhon",22,3.1415926);

console.log(s.getName());
console.log(s.say());
console.log(s.getId());
console.log(s.constructor);

 

分享到:
评论

相关推荐

    学习javascript面向对象 javascript实现继承的方式

    子类型构造函数的原型被替换为超类型构造函数的一个实例,这样子类型就可以继承超类型的所有属性和方法。使用原型链继承时,需要注意的是,如果使用对象字面量添加方法到子类型的原型中,会重写原型链,导致继承失效...

    js javascript zInherit 对象 继承

    对象继承允许一个对象(子对象)从另一个对象(父对象或基对象)那里获取属性和方法,从而实现代码的复用和组织。`zInherit`是JavaScript中一种常见的对象继承实现方式。 在JavaScript中,有多种实现继承的方法,...

    javaScript面向对象继承方法经典实现.docx

    然后,`Cat.prototype`被设置为`new Pet()`,这样`Cat`就继承了`Pet`的所有方法和属性。最后,`Cat.prototype`上添加了一个`action`方法,表示猫的行为。 示例中创建了一个`Cat`实例`petCat`,并展示了如何调用其...

    JavaScript继承

    一个函数作为构造函数,`this`关键字用于初始化实例属性,而方法通常添加到构造函数的`prototype`对象上,以便所有实例都可以访问。例如,`Person`类就是这样创建的: ```javascript function Person(name) { this...

    javascript继承之为什么要继承.docx

    例如,我们可以创建一个 Walk 对象和一个 Fly 对象,然后将它们组合成一个 Pegasus 对象,这样 Pegasus 对象就可以拥有 Walk 和 Fly 的所有方法。 在 JavaScript 中,继承机制的目的是为了实现代码复用和提高编程...

    面向对象JavaScript开发

    当尝试访问对象的一个属性时,JavaScript会首先在当前对象中查找,如果找不到,就会沿着原型链向上查找,直到找到为止。 4. **继承**:JavaScript支持多种继承方式,如原型链继承、构造函数继承、组合继承、原型式...

    JavaScript学习之三 — JavaScript实现继承的7种方式

    结合寄生继承和组合继承的优点,子类先通过寄生方式创建一个没有父类引用的新对象,然后将子类的属性添加到这个新对象,最后将新对象设置为子类的原型。这是目前最常用的继承方式,因为它避免了构造函数的重复调用和...

    JAVASCRIPT 面向对象编程精要

    创建一个对象时,它可以继承另一个对象的属性和方法。 ```javascript function Person(name, age) { this.name = name; this.age = age; } Person.prototype.greet = function () { console.log(`Hello, my name...

    JavaScript 面向对象编程详细讲解文档

    原型(prototype)是JavaScript中实现继承的关键,每个函数都有一个prototype属性,这个属性指向一个对象,该对象的属性和方法会被实例继承。当你创建一个新对象时,如果没有指定构造函数,那么这个新对象就会从...

    JavaScript面向对象的支持

    通过`Object.create()`方法或者直接修改`__proto__`属性,可以为对象添加新的方法或属性,实现对现有对象的扩展。 7. **ES6的类语法**: ES6引入了类的语法糖,使得JavaScript的面向对象编程看起来更接近传统的类...

    javascript创建对象、对象继承的有用方式详解_.docx

    在 JavaScript 中,每个对象都有一个原型对象,这个原型对象可以包含属性和方法。当尝试访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,则会沿着原型链向上查找,直到找到为止或者到达原型链的顶端...

    javascript面向对象

    例如,跑车类可以从汽车类继承所有属性和方法,同时添加额外的速度限制和性能调优。 - **多态**:多态允许在程序中使用一个接口来表示多种不同的类型,这意味着一个函数可以处理不同类型的对象。多态增强了代码的...

    深入浅出JavaScript对象模型

    通过`Person.prototype`,我们为所有由`Person`创建的对象添加了一个共享的方法`sayHello`。这种方法的共享特性是JavaScript实现类似面向对象编程的关键之一。 #### 原型链 原型链是JavaScript中对象查找机制的...

    javascript面向对象编程(中文).pdf

    - **JavaScript与OOP**:虽然JavaScript并不是从一开始就设计为面向对象的语言,但它具备了面向对象编程的所有核心特性,例如封装、继承和多态。 - **构造函数与原型链**: - **构造函数**:用于创建对象实例的...

    JavaScript面向对象编程案例

    4. **原型对象**:每个函数都有一个`prototype`属性,这个属性是一个对象,可以添加属性和方法。当试图访问实例对象上的属性或方法时,JavaScript会向上查找原型链。 5. **闭包和作用域**:虽然这不是面向对象特性...

    javascript控件开发之继承关系

    每个JavaScript对象都有一个内部[[Prototype]]链接到另一个对象,这通常是其构造函数的prototype属性。通过这种方式,一个对象可以“继承”另一个对象的属性和方法。在控件开发中,我们通常会创建一个基础控件类,...

    javascript对象参考手册

    类支持继承,通过`extends`关键字,一个类可以继承另一个类的属性和方法。 以上只是JavaScript对象涉及的一部分知识点,JavaScript参考手册.chm文件很可能会包含这些话题的详细解释和实例。对于开发者来说,深入...

    javascript面向对象编程pdf

    在书中举例说明了如何通过构造器函数来创建对象,并利用原型(prototype)给对象添加方法。在JavaScript中,构造函数和原型是实现面向对象的关键机制。例如,Lecture构造函数接受两个参数name和teacher,将它们作为...

    javascript 经典面向对象设计

    - **装饰器模式**:动态地给一个对象添加新的职责。适用于扩展对象功能而又不改变其结构的情况。 - **观察者模式**:当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。适用于实现事件驱动...

Global site tag (gtag.js) - Google Analytics