`

js 对象继承

    博客分类:
  • js
阅读更多

总结一下,对象继承的几种方式

 

1.构造函数绑定

function Person(){
   this.speices ="人类"
}
function Women (name){
   Person.apply(this); //or Rerson.call(this) 如果父类定义需要传参 参照apply call 传参方式
   this.name = name;
   this.sex = "women"
}
console.log( new Women("cy").speices) //=> "人类"
console.log( new Women("cy").constructor) //=> function Women (name)

 2. prototype模式

function function Person(){
   this.speices ="人类"
}

function Women (name){
   this.name = name;
   this.sex = "women"
}
Women.prototype  = new Person()
Women.prototype.constructor = Women;

console.log( new Women("cy").speices) //=>"人类"
console.log( new Women("cy").constructor) //=> function Women (name)

 

3.空对象继承

 

function Person(){
   this.speices ="人类"
}

function Women (name){
   this.name = name;
   this.sex = "women"
}
function extend(Child, Parent) {
    var blank_obj = function () {};
    blank_obj.prototype = Parent.prototype;
    Child.prototype = new blank_obj();
    Child.prototype.constructor = Child;
    Child.uber = Parent.prototype;
}

extend(Women, Person)

 

4.非构造函数继承

 

var Person = {
    speices:"人类",
    attributes:['胎生','哺乳']

}

function deepCopy(p, c) {
    var c = c || {};
    for (var i in p) {
      if (typeof p[i] === 'object') {
        c[i] = (p[i].constructor === Array) ? [] : {};
        deepCopy(p[i], c[i]);
      } else {
         c[i] = p[i];
      }
    }
    return c;
  }
var Women = deepCopy(Person)
Women.sex = 'women'
console.log(Women.attributes) //['胎生','哺乳']
 

 

 

 

 

  

 

 

 

分享到:
评论

相关推荐

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

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

    JavaScript对象继承模型Fiber.js.zip

    Fiber.js 是来自 Linkedin 的一个轻量级的 JavaScript 对象继承模型。示例代码:// Animal base class var Animal = Fiber.extend(function() {  return {  // The `init` method serves as the ...

    js javascript zInherit 对象 继承

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

    js对象继承之原型链继承实例

    本文实例讲述了js对象继承之原型链继承的用法。分享给大家供大家参考。具体分析如下: 代码如下:[removed] //定义猫的对象 var kitty = {color:’yellow’,bark:function(){alert(‘喵喵’);},climb:...

    理解javascript对象继承

    JavaScript对象继承是面向对象编程中的核心概念,它允许一个对象(子对象)获取另一个对象(父对象或基对象)的属性和方法。这种方式使得代码复用和组织更加有效。本文将详细探讨JavaScript对象继承的不同实现方式...

    JavaScript必知必会(七)js对象继承

    本篇将深入探讨JavaScript对象继承的原理、方法以及如何正确地访问和使用继承的属性。 首先,我们要理解JavaScript的原型链。每个JavaScript对象都有一个内置的`__proto__`属性,指向其构造函数的`prototype`对象。...

    JavaScript面向对象继承详解

    每个JavaScript对象都有一个内部的[[Prototype]]属性,通常可以通过`__proto__`或`Object.getPrototypeOf`访问。当试图访问对象的一个属性时,如果该属性不存在于当前对象,JavaScript会向上搜索原型链,直到找到该...

    javascript学习笔记(十) js对象 继承

    在这份“JavaScript学习笔记(十)”中,主要讨论了JavaScript对象继承的知识点,内容覆盖了原型链继承、确定原型与实例关系的方法以及借用构造函数等不同的继承方式。下面将对这些内容进行详细的解析。 ### 1. 原型...

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

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

    Javascript中对象继承的实现小例

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

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

    继承是面向对象编程的核心概念之一,它允许我们创建一个新对象,该对象继承现有对象的属性和方法。在JavaScript中,实现继承有多种方式,每种方式都有其特点、优势和不足。本文将详细介绍六种实现JavaScript继承的...

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

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

    javascript 原生态js类继承实现的方式

    我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。

    js 面向对象实例

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

    浅谈js对象的创建和对6种继承模式的理解和遐想

    本文将探讨JavaScript中对象的创建方式以及六种常见的继承模式,包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承以及寄生组合式继承。 首先,让我们从对象的创建开始谈起。在JavaScript中创建...

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

    ### JavaScript 创建对象与对象继承的有效方法 #### 一、引言 JavaScript 是一种基于原型的语言,这使得其处理对象和继承的方式与传统的面向对象编程语言有所不同。本文将深入探讨 JavaScript 中创建对象及对象继承...

Global site tag (gtag.js) - Google Analytics