借用构造函数继承非原型
2015-06-17 15:56
344 查看
function Article() { this.tag = ["js", "html"]; } var article = new Article(); var Blogpost = function () {}; Blogpost.prototype = article; var blog = new Blogpost(); var Page = function() { Article.call(this, arguments); }; var page = new Page(); blog.tag.push("aa"); page.tag.push("bb"); console.log(article);
Object {tag: Array[3]}
tag: Array[3]
0: "js"
1: "html"
2: "aa"
length: 3
__proto__: Array[0]
__proto__: Article
constructor: function Article() {
__proto__: Object
blog和article是同一个tag引用。是同一个实例,article。
如果将Blogpost.prototype = new Article();重新new 一个那么实例就不共享了。
new的适合,构造函数的新的实例,但是prototype是共享的。如下所示
function Tree (x) { this.value = x; } Tree.prototype = { constructor: Tree, children: [], addChild: function(x) { this.children.push(x); } } var tree1 = new Tree(1); tree1.addChild(1); var tree2 = new Tree(2); tree2.addChild(2); console.log (tree1.children);//[1,2]
相关文章推荐
- linux 磁盘读写性能测试
- leetcode 8 -- String to Integer (atoi)
- Makefile-炼之道
- DOM0,DOM2,DOM3事件,事件基础知识入门
- Deutsch lernen (03)
- RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序
- hiho第十周——后序遍历
- android 内存泄露浅谈和处理
- Transaction resolution unknown.
- PHP正则获取图片信息
- linux下redis与phpredis安装详解与简单操作
- 关于Oracle数据库表中字段修改为自增
- go简单模拟Redis数据库对应{key, value}的存取功能
- Nginx %00空字节执行php漏洞
- linux 关闭防火墙
- CSS响应式web设计
- GRE作文常用词汇和句式
- SAT数学考试做题时需要用到的数学公式
- Java并发编程-18-在执行器中执行任务并处理结果
- 学习一样新东西行而有效的方法