`
wohenni0931
  • 浏览: 449 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JS中的对象继承

阅读更多
1、原型继承(prototype)
<script type="text/javascript">  
    function Person(name,age){  
        this.name=name;  
        this.age=age;  
    }  
    Person.prototype.sayHello=function(){  
        alert("使用原型得到Name:"+this.name);  
    }  
    var per=new Person("马小倩",21);  
    per.sayHello(); //使用原型得到Name:马小倩  

      
    function Student(){}
   Student.prototype=new Person("洪如彤");  
   var stu=new Student();
   alert(stu.name);//洪如彤 
   alert(stu.age);//undefined,因为new的时候只传了name
   Student.prototype.grade=5;
   Student.prototype.intr=function(){
      alert(this.grade);
   } 
   stu.intr();//5  
</script> 


2、call,apply继承
<script type="text/javascript">
function Person(name,age,love){
   this.name = name;
   this.age = age;
   this.love = love;
   this.say = function say(){
      alert("姓名:"+name+",年龄:"+age+",伴侣:"+love);
   }
}

function student(name,age){
   Person.call(this,name,age);
}

function teacher(name,love){
   Person.apply(this,[name,love]);
// Person.apply(this,arguments);//跟上一句一样效果
}

//call与aplly的区别:call的参数是列表;apply参数是数组(arguments也可以)

var per = new Person("小明",25,"小红");
per.say();//姓名:小明 ,年龄:25,伴侣:小红
var stu = new student("李磊",18);
stu.say();//姓名:李磊 ,年龄:18,伴侣:undefined
var tea = new teacher("高老师","伴侣名字");
tea.say();//姓名:高老师 ,年龄:伴侣名字,伴侣:undefined。说明参数只和位置有关
</script>


3、构造函数继承
<script type="text/javascript">
function Parent(name){
   this.name = name;
   this.sayParent = function(){
      alert("Parent:"+this.name);
   }
}

function Child(name,age){
   this.tempMethod = Parent;
   this.tempMethod(name);
   this.age = age;
   this.sayChild = function(){
      alert("Child:"+this.name+",age:"+this.age);
   }
}

var parent = new Parent("大明");
parent.sayParent();//Parent:大明

var child = new Child("小明",25); 
child.sayChild();//Child:小明,age:25
child.sayParent();//Parent:小明
</script>




有些代码摘自网上,只做部分修改。第一次写文章是一个好的开端,如果有错或建议,请留言
分享到:
评论

相关推荐

    js javascript zInherit 对象 继承

    总的来说,`zInherit`是JavaScript对象继承的一种实现,它利用原型链实现继承关系,使得子类可以继承和扩展父类的属性和方法。理解并熟练掌握这种继承方式,对于深入理解JavaScript的OOP特性以及编写高效的代码至关...

    JavaScript面向对象继承详解

    本文将深入探讨JavaScript中的面向对象继承,这是理解JavaScript OOP的关键部分。 面向对象继承是实现代码复用和模块化的重要机制。在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个JavaScript...

    Javascript中对象继承的实现小例

    JavaScript对象继承的实现机制是该语言灵活特性的核心部分之一。了解如何在JavaScript中实现对象的继承,可以帮助开发者构建更为丰富和具有层次性的代码结构。接下来,我们将详细探讨文档中提供的JavaScript对象继承...

    js定义类 对象 构造函数,类的继承

    在提供的`ClassDefineAndExtends.js`文件中,可能包含了关于类定义和继承的示例代码。通过分析这个文件,我们可以看到实际应用中的类定义和继承实践,包括如何定义类,如何使用构造函数初始化对象,以及如何通过`...

    js 面向对象实例

    每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...

    JS面向对象经典案例

    原型链是JavaScript中的一种机制,它允许对象继承另一个对象的属性和方法。在JavaScript中,每个对象都有一个原型(prototype),它指向了该对象的父对象。例如,我们可以使用以下代码来获取一个对象的原型: ```...

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

    寄生组合式继承是目前最理想的继承方式,它避免了组合继承中调用两次构造函数的问题。这种继承方法只调用一次超类型构造函数,并且因此只创建一次超类型原型。 优点: - 最有效的一种继承方式,只调用一次超类型...

    Javascript面向对象编程.

    这篇博客文章可能详细讨论了如何在JavaScript中实现面向对象编程。 在JavaScript中,面向对象主要通过以下三种方式实现: 1. **构造函数(Constructor)**:构造函数是一种特殊的函数,用于创建和初始化对象。我们...

    理解js对象继承的N种模式

    本文将深入探讨JavaScript对象继承的三种主要模式:原型链继承、借用构造函数(伪造对象,经典继承)以及组合继承(伪经典继承)。 一、原型链继承 在JavaScript中,每个对象都有一个prototype属性,指向它的构造...

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

    以下是两种经典的JavaScript面向对象继承方法的详细解释: 1. **基于原型的继承**: 这种方法是JavaScript最基础的继承方式,通过`prototype`属性实现。在提供的代码示例中,首先定义了一个`Pet`对象,它有一个...

    js对象,五种继承 详细讲解

    在JavaScript中,对象的定义和继承是核心概念。本文将深入探讨JavaScript的五种对象定义方法以及五种继承方式。 1. **对象定义方法** - **字面量语法**:最直接的方法是使用花括号`{}`创建对象,如`var obj = {...

    javascript中类和继承(代码示例+prototype.js)

    在JavaScript中,类和继承是面向对象编程的重要概念。JavaScript是一种动态类型的语言,它没有像Java或C++那样的传统类,而是使用函数作为构造器来模拟类的行为,并通过原型链实现继承。本文将深入探讨JavaScript中...

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

    本文将深入探讨 JavaScript 中创建对象及对象继承的各种有效策略,特别是如何利用构造函数模式、原型模式以及寄生组合式继承等技术来构建灵活、高效的应用程序。 #### 二、JavaScript 对象与原型 在 JavaScript 中...

    JS封装和继承-入门级

    5. **寄生组合式继承**:结合了寄生式继承和组合继承的优点,是JavaScript中推荐的继承方式,可以在`Javascript面向对象编程(三):非构造函数的继承.docx`中找到更详细的解释。 例如,使用寄生组合式继承: ```...

    浅谈JavaScript对象与继承_.docx

    关于对象继承,JavaScript采用的是原型链机制。每个对象都有一个`__proto__`属性,指向它的原型。当试图访问对象的一个属性时,如果对象本身没有该属性,JavaScript会查找`__proto__`,如果`__proto__`也没有,就会...

    javascript面向对象编程(中文)

    JavaScript有CommonJS(Node.js中)、AMD(RequireJS)和ES6的模块系统,如`import`和`export`关键字,用于组织和管理代码。 9. **类的静态属性和方法**:在JavaScript的类语法中,可以定义静态属性和方法,它们不...

    JavaScript中的类继承

    在JavaScript中,对象可以直接从其他对象继承属性和方法,而不是通过类的实例化。这种继承机制使得JavaScript具有更强的表现力和灵活性,尤其在代码复用和类型安全方面。 类型安全和代码复用是类继承的主要原因。在...

    Javascript面向对象与继承.doc

    在JavaScript中,可以使用`JSON.stringify()`将对象转换为JSON字符串,`JSON.parse()`将JSON字符串解析回JavaScript对象。 ### 其他知识点 - `this`关键字:在函数中,`this`指代调用该函数的对象。在全局作用域或...

    js中ES6继承和ES5继承之间的差别.docx

    在 JavaScript 中,继承是实现对象之间的关系的一种方式。ES5 和 ES6 都提供了继承机制,但是它们之间存在着一些关键的差异。本文将详细介绍 ES5 和 ES6 中继承的实现机制和差异。 ES5 继承 在 ES5 中,继承是通过...

Global site tag (gtag.js) - Google Analytics