了解这一章之前,先把我们之前讲到的以构造函数创建对象为前提的继承抛到一边。

首先,我们先用一个var o = {}创建一个没有任何属性的空对象作为我们的‘画板’,然互在逐步向这个画板里添加属性,和方法,但这次我们不用this,而是直接将现有的对象属性全部拷贝过来。

如下面一个函数,我们传入一个对象,并返回她的一个副本。

function extendCopy(parent){
    var child = {};
    for(var i in parent){
        child[i] = parent[i];
    }
    child.usber = parent;
    return child;
}

单纯的属性拷贝是一种非常简单的模式,使用范围非常之广。看一下她的实际应用。

首先我们需要一个基本对象:

var her = {
    name : 'Anna',
    sex : 'women',
    toString : function(){
        return this.name;
    }
}

我们只需调用上面的方法,就能返回一个新对象了,我们接着进行扩展:

var his = extendCopy(her);
    his.name = 'Jock';
his.toString = function(){
    return this.usber.toString() + ',' + this.name;
}

我们在创建一个对象,接着上述的步骤:

var ha = extendCopy(his);
    ha.name = 'Los';
    ha.getArea = function(){
    return this.side * this.height / 2;
}

接着我们来看:

ha.side = 5;
ha.height = 10;

console.log(ha.getArea()); //25
console.log(ha.toString()); // Anna Jock los

这就是简单的属性拷贝了。

javascript --- 对象之间的继承的更多相关文章

  1. js对象之间的继承

    js的对象之间的继承抛弃了原型与构造器的概念,而转为字面量对象之间进行属性拷贝的方式进行继承. 首先我们来写一个封装好的继承函数: function extend(parent){ var child ...

  2. js对象之间的"继承"的五种方法

    今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = & ...

  3. web前端学习(二) javascript对象和原型继承

    目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...

  4. JavaScript对象创建,继承

    创建对象 在JS中创建对象有很多方式,第一种: var obj = new Object(); 第二种方式: var obj1 = {};//对象直面量 第三种方式:工厂模式 function Per ...

  5. Jquery和Javascript对象之间的转换

    jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象.jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法:例如: $(&quo ...

  6. javascript对象创建及继承

    //****************************************************************************** //创建类的多种方式 //------ ...

  7. 🍓JavaScript 对象原型链继承的弊端 🍓

  8. Javascript面向对象(封装、继承)

    Javascript 面向对象编程(一):封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程( ...

  9. 删除要被替换的元素的所有事件处理 程序和 JavaScript 对象属性

    使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在 IE 中,问题更加明显.在删除带有事件处理程序或引用了其他 JavaScript 对象子树时,就有可能导致内存占用问题.假设 某个 ...

随机推荐

  1. 通过IAR工程文件查看对应IAR版本号

    IAR使用技巧——如何使用合适的版本打开IAR工程 2014年07月05日 23:49:08 xukai871105 阅读数:12895 标签: IAR 更多 个人分类: 嵌入式ARM   0.前言 ...

  2. 思维题:UVa1334-Ancient Cipher

    Ancient Cipher Ancient Roman empire had a strong government system with various departments, includi ...

  3. Python 实战一

    列表ID的显示 起初ID显示的是数据库中的id,因为数据库中的id是自增长的,所以删除一条后,这里显示就叉开了,这里使用索引的方式来显示. 这个功能实现的逻辑: 第一:定义一个表格的架构,用id=‘i ...

  4. 再谈H2的MVStore与MVMap

    对H2的[MVStore]: http://www.cnblogs.com/simoncook/p/5188105.html 这篇文章的补充. 概述 我们通常用的map,比如HashMap Linke ...

  5. 小甲鱼零基础入门PYTHON

     000.愉快的开始 00:17:37 ☆  001.我和Python的第一次亲密接触 00:13:26 ★  002.用Python设计第一个游戏 00:24:00 ★  003.小插曲之变量和字符 ...

  6. day03_07 变量的重新赋值01

    在cmd中退出python,需要使用quit()命令 name = "Alex Li" name2 = name print(name,name2) name = "Ja ...

  7. re——正则表达式

    常用的表达式规则 '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r&q ...

  8. python常用方法总结

    1.os模块的路径拼接: import os now_path=os.path.abspath(__file__)#当前运行文件的路径 print(now_path) uppeer_path=os.p ...

  9. JDBC初探(一)

    下载好JDBC之后,首先做的应该是查看它的文档 打开connector-j.html import java.sql.Connection; import java.sql.DriverManager ...

  10. how to write an front-end framework by using vanilla JavaScript?

    how to write an front-end framework by using vanilla javascript? https://www.quora.com/How-can-I-mak ...