个人的理解,有什么不正确的请指教,共同学习

//声明一个构造函数Person
function Person(name,age){
this.name = name;
this.age = age;
}
//向构造函数的原型添加方法getName
Person.prototype.getName= function () {
console.log(this.name);
};
//new一个对象stru1 stru1就拥有getName方法 
*所有通过构造函数new出来的对象都拥有getName方法
var stu1=new Person("xiaoli","25"); console.log(stu1.name);
console.log(stu1.age);
stu1.getName();
//为什么都拥有getName方法呢
//因为__proto__,js在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,
// 用于指向创建它的函数对象的原型对象prototype。
console.log(Person.prototype);//打印如下:

//Person.prototype里面含有 getName方法  constructor 和__proto__
console.log(stu1.__proto__===Person.prototype); //true
console.log(Person.prototype.__proto__===Object.prototype);//true
console.log(Object.prototype.__proto__===null);//true
//Person.prototype.constructor 属性指向构造函数本身
console.log(Person.prototype.constructor===Person);//true
console.log(stu1)//打印如下:

//stur不包含prototype属性

由上面的原型组成的链状结构叫原型链

												

最新文章

  1. mysql 文件导入方法总结
  2. 视频控件VideoView的简单使用
  3. C# 公历转农历
  4. 攻城狮在路上(壹) Hibernate(十八)--- 管理Hibernate的缓存
  5. [HTML5]原生事件绑定和jquery动态事件绑定的区别
  6. 【你吐吧c#每日学习】10.29 C#字符串类型&Common operators
  7. php 查询出来的字段名全是小写或者大写
  8. Android OpenGL ES(三)OpenGL ES API 命名习惯 .
  9. Div.2 C. Dasha and Password
  10. Zabbix 3.0 监控Web
  11. python的PEP8 代码风格指南
  12. 使用 CODING 进行 Spring Boot 项目的集成
  13. 使用ReentrantLock同步,经典银行账户问题
  14. Busybox镜像
  15. 项目详解4—haproxy 反向代理负载均衡
  16. match和search的区别
  17. c++ 日志输出库 spdlog 简介(2)
  18. 开源项目Bug悬赏任务
  19. 自学Linux Shell13.3-获得用户输入(read命令)
  20. Python文件和异常

热门文章

  1. linux系统ansible一键完成三大服务器基础配置(剧本)
  2. html5 浏览文件
  3. Codeforces Round #503 (by SIS, Div. 2)
  4. idea自个常用工具的总结
  5. scipy插值与拟合
  6. dubbo框架初步学习
  7. 数据拆分之 垂直拆分 and 水平拆分
  8. gdb 命令汇总
  9. 树中的路径和 Sum of Distances in Tree
  10. Web安全测试工具 Burp Suit 使用简介