js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prototypeInherit</title>
    <script type="text/javascript">
    //原型式继承:实质上就是类式继承的函数封装(但有缺陷)
    function inheritObject(obj){
        //声明一个过渡函数对象
        function _f(){}
        _f.prototype = obj;
        return new _f();
    }
    var book = {
        name:'js book',
        alike:['css','html']
    }
    var newbook = inheritObject(book);
    newbook.name = 'ajax book';
    console.log(newbook.name);      //'ajax book'
    newbook.alike.push('js');
    console.log(newbook.alike);     //["css", "html", "js"]
var combook = inheritObject(book);
    console.log(combook.name);      //'js book'
    console.log(combook.alike);     //["css", "html", "js"]newbook中修改加入的'js'元素,combook中也共享了
    //小结:原型继承中——父对象的直接属性被分别拷贝,数组类结构属性会被共用。(推荐使用类式继承,继承的比较完美,每个实例都是独立对象,又都继承了父类的直接属性和原型prototype属性)
    //本例已经通过验证
    </script>
</head>
<body>
    
</body>
</html>
js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)的更多相关文章
- js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ... 
- js原生设计模式——2面向对象编程之继承—new类式继承
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ... 
- js原生设计模式——2面向对象编程之继承—call(this)构造函数式继承
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ... 
- js原生设计模式——2面向对象编程之继承—多继承
		1.单对象克隆 <!DOCTYPE html><html lang="en"><head> <meta charset=" ... 
- js原生设计模式——2面向对象编程之js原生的链式调用
		技巧点:对象方法中返回当前对象就可以链式调用了,即方法中写return this; <!DOCTYPE html><html lang="en"><h ... 
- js原生设计模式——2面向对象编程之闭包2
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ... 
- js原生设计模式——2面向对象编程之闭包1
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ... 
- Javascript继承1:子类的的原型对象----类式继承
		//声明父类 function Parent(){ this.parentValue = true; this.favorites = ['看书'] } //为父类添加公有方法 Parent.prot ... 
- JS原型继承和类式继承
		前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ... 
随机推荐
- 会员登录HTML
			<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!DOCTYPE html PUBLIC "-//W ... 
- CentOS 6.3下NTP服务安装和配置
			测试环境: NTPserver 192.168.1.252 NTPclient 192.168.1.251 准备工作: 关闭selinux: vi /etc/selinux/config SELINU ... 
- javascript中的原型继承
			在Javascript面向对象编程中,原型继承不仅是一个重点也是一个不容易掌握的点.在本文中,我们将对Javascript中的原型继承进行一些探索. 基本形式 我们先来看下面一段代码: <cod ... 
- Varnish Cache
			1 Varnish简介 Varnish是高性能且开源的反向代理服务器和HTTP加速器(cache server).其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一.Varn ... 
- MAC使用GITHUB
			作者:珊姗是个小太阳链接:https://www.zhihu.com/question/20070065/answer/79557687来源:知乎著作权归作者所有,转载请联系作者获得授权. #什么是 ... 
- 前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-资源汇总
			内容精简 资源这么多,多看看多学习再总结肯定是好的.多读读就算看重了不算浪费时间,毕竟一千个读者就有一千个林黛玉,还有温故而知新,说不定多读一些内容,就发现惊喜了呢.不过,在此也精简一些内容,就1~2 ... 
- nexus 中央仓库
			nexus 中央仓库 下载地址:http://www.sonatype.org/nexus/archived 下载最新版本 mkdir -p /opt/local/nexus tar zxvf nex ... 
- MySQL的 explain 解析
			EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 项 说明 id MySQL Query Optimizer 选定的执行计划中查询的序列号.表示查询中执行 select 子句 ... 
- Java设计模式遵循的七大原则
			最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性.设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特 ... 
- CodeForces 625D Finals in arithmetic
			神奇的构造题,我的思路比较奇葩.搞了好久,看到WA on 91我绝望了,然后自己造数据,找到了错误,总算是AC了,现在是凌晨0:24分,看到AC之后,感动China! 我写的代码无比的长.....应该 ... 
