二、Object.create实现继承

本文将来学习第七种继承方式Object.create()方法来实现继承,关于此方法的详细描述,请戳这里。下面来通过几个实例来学习该方法的使用:

var Parent = {

    getName: function() {

        return this.name;

    }

}

var child = Object.create(Parent, {

    name: { value: "Benjamin"},

    url : { value: "http://www.zuojj.com"}

});

//Outputs: Object {name: "Benjamin", url: "http://www.zuojj.com", getName: function}

console.log(child);

//Outputs: Benjamin

console.log(child.getName());

我们再来看一个例子,再添加一个继承:

var Parent = {

    getName: function() {

        return this.name;

    },

    getSex: function() {

        return this.sex;

    }

}

var Child = Object.create(Parent, {

    name: { value: "Benjamin"},

    url : { value: "http://www.zuojj.com"}

});

var SubChild = Object.create(Child, {

    name: {value: "zuojj"},

    sex : {value: "male"}

})

//Outputs: http://wwww.zuojj.com

console.log(SubChild.url);

//Outputs: zuojj

console.log(SubChild.getName());

//Outputs: undefined

console.log(Child.sex);

//Outputs: Benjamin

console.log(Child.getName());

通过上面可以看出Object.create()方法实现了链式继承,及原型链的继承。如果在控制台打印出各个生成的对象,可以很清楚的看到。

//Outputs: true

console.log(Child.isPrototypeOf(SubChild));

//Outputs: true

console.log(Parent.isPrototypeOf(Child));

isPrototypeOf() 方法测试一个对象是否存在于另一个对象的原型链上。 以上就是本文对Object.create方法的描述,文中不妥之处,还望批评指正。
 

//来自:http://www.2cto.com/kf/201411/349571.html

最新文章

  1. SQL必知必会 14-22(完)
  2. jquery点击获取子元素ID值
  3. UITextView的使用详解
  4. android开发 PopupWindow 设置充满屏幕
  5. 【转】《APUE》第三章笔记(4)及习题3-2
  6. selenium 调用JS操作滚动条(java)来解决element not clickable的问题
  7. NOIP2008 双栈队列
  8. 手动制作rpm包
  9. 基于Apache axis2开发Java Web服务
  10. Git知识总览(一) 从 git clone 和 git status 谈起
  11. git和svn的區別
  12. day 53 练习
  13. OpenGL ES 3.0 图元组合和光栅化(三)
  14. linux ifconfig -a
  15. python 里面的%s和%r的区别
  16. 迭代器&生成器&yield异步
  17. Spring框架之演示JDBC的模板类
  18. css3 3d正反面翻转
  19. Hive(一)Hive初识
  20. Java虚拟机6:垃圾收集(GC)-1(内存溢出和内存泄漏的区别)

热门文章

  1. java 监听控制台输入
  2. JSCH实现文件上传下载至sftp服务器
  3. vue中使用base64进行加解密
  4. 用CSS来控制字符长度和显示长度
  5. 主题:实战WebService II: SOAP篇(基于php)
  6. Tensorflow高效读取数据的方法
  7. 【hdu 6444】Neko's loop
  8. springmvc上传操作
  9. 如何用Vim提高开发效率
  10. Mysql 索引-2