js 原型原型链
2024-08-05 23:34:05
个人的理解,有什么不正确的请指教,共同学习
//声明一个构造函数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属性
由上面的原型组成的链状结构叫原型链
最新文章
- mysql 文件导入方法总结
- 视频控件VideoView的简单使用
- C# 公历转农历
- 攻城狮在路上(壹) Hibernate(十八)--- 管理Hibernate的缓存
- [HTML5]原生事件绑定和jquery动态事件绑定的区别
- 【你吐吧c#每日学习】10.29 C#字符串类型&;Common operators
- php 查询出来的字段名全是小写或者大写
- Android OpenGL ES(三)OpenGL ES API 命名习惯 .
- Div.2 C. Dasha and Password
- Zabbix 3.0 监控Web
- python的PEP8 代码风格指南
- 使用 CODING 进行 Spring Boot 项目的集成
- 使用ReentrantLock同步,经典银行账户问题
- Busybox镜像
- 项目详解4—haproxy 反向代理负载均衡
- match和search的区别
- c++ 日志输出库 spdlog 简介(2)
- 开源项目Bug悬赏任务
- 自学Linux Shell13.3-获得用户输入(read命令)
- Python文件和异常