首先写一个父类方法(包含参数name,age):

function Person(name,age){
this.name = name;
this.age = age;
}

new一个Person的实例p1做研究对比

var p1 = new Person("Richard", 22);
//此时p1包含name、age属性,同时p1的__proto__指向Person的prototype
p1.name;//Richard
p1.age;//
自定义一个New函数:
//通过分析原生的new方法可以看出,在new一个函数的时候,
// 会返回一个func同时在这个func里面会返回一个对象Object,
// 这个对象包含父类func的属性以及隐藏的__proto__
function New(f) {
//返回一个func
return function () {
var o = {"__proto__": f.prototype};
f.apply(o, arguments);//继承父类的属性 return o; //返回一个Object
}
}

通过自定义New方法创建一个实例对象p2:

var p2 = New(Person)("Jack",25);
p2.name;//Jack
p2.age;//

此时p2 instanceof Person 返回的是true;

Person.prototype.gender ="male";
p1.gender//male
p2.gender//male

最新文章

  1. Linux相关文章
  2. 咏南IOCP中间件
  3. 【OpenStack】OpenStack系列14之Dashboard定制开发
  4. discuz 学习
  5. BZOJ 2286 消耗战
  6. 简单工厂(Simple Pattern)模式
  7. 在Dashboard中显示课表/日程表
  8. Centos6.4 设置开机自动以某个非root用户启动脚本
  9. 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏
  10. M - 约会安排 - hdu 4553
  11. Jmeter 正则提取器
  12. 云计算之路-阿里云上:攻击又来了,4个IP分别遭遇超过30G的流量攻击
  13. Oracle基础--体系
  14. 谁能教我iCloud怎么用?
  15. 深入浅出Hadoop之mapreduce
  16. promise 的基本概念 和如何解决js中的异步编程问题 对 promis 的 then all ctch 的分析 和 await async 的理解
  17. [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)
  18. 《你不知道的JavaScript》三卷读后感
  19. Direct3D 11 Tutorial 5: 3D Transformation_Direct3D 11 教程5:3D转型
  20. Java 命令行启动时指定配置文件目录

热门文章

  1. redux学习日志:关于异步action
  2. List源码学习之LinkedList
  3. .net 和 core2.0 数据库连接字符串
  4. Hystrix-异常处理
  5. cmd 指令
  6. HBuilder连接IOS手机打开APP测试
  7. python_如何创建可管理的对象属性
  8. 【转】matlab针对不同格式文件的读写
  9. JavaSE基础篇—数据类型和运算符
  10. Java使用Openoffice将word、ppt转换为PDF