Js中原型与原型链及_proto_和prototype的关系
来源:互联网 发布:淘宝天天特价10元包邮 编辑:程序博客网 时间:2024/05/16 10:14
理解认识_ proto_和prototype
每一个构造函数都有一个prototype属性,类型是object,是一个引用对象
每一个对象也有一个_ proto_对象,类型是object,也是一个引用对象
每一个构造函数在被创建之后都会有一个prototype属性,这个属性指向函数的原型对象,通过构造函数创建的对象都会有一个_ proto_对象,指向这个构造函数的prototype。
function Animal(type) { this.type = type; }; Animal.prototype.name = 'Tom'; var cat = new Animal('cat'); console.log(cat.__proto__ === Animal.prototype); //true
prototype的作用是用来实现基于原型的继承和属性的共享
_ proto_的作用的是构成原型链,同样是实现原型的继承
通过关键字new和构造函数创建的对象,他们的原型就是构造函数的prototype,都会继承object.prototype
在js中调用new关键字时,js引擎内部机制:
new Animal("cat") = { var obj = {}; obj.__proto__ = Animal.prototype; var result = Animal.call(obj,"cat"); returntypeof result === 'object'? result : obj;}
(1)创建一个空对象obj;
(2)把obj的proto 指向Animal的原型对象prototype,此时便建立了obj对象的原型链:obj->Animal.prototype->Object.prototype->null
(3)在obj对象的执行环境调用Animal函数并传递参数“cat”。 相当于var result = obj.Animal(“cat”)。
当这句执行完之后,obj便产生了属性name并赋值为”cat”。
(4)考察第3步返回的返回值,如果无返回值或者返回一个非对象值,则将obj返回作为新对象;否则会将返回值作为新对象返回。
阅读全文
0 0
- Js中原型与原型链及_proto_和prototype的关系
- JS原型链中 _proto_和prototype及constructor的关系
- JS中原型链中的prototype与_proto_的理解和区别
- 原型与原型链prototype与_proto_
- JS原型与原型链终极详解_proto_、prototype及constructor
- js 原型_proto_和prototype图解
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 详解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 理解js中的原型链,prototype与__proto__的关系
- 欢迎使用CSDN-markdown编辑器
- uumnt美女图片爬虫
- OPENCV二值化图像内孔洞填充/小区域去除
- 海康威视网络摄像头连接NAS存储实践
- POJ 3680 Intervals(区间覆盖建图)
- Js中原型与原型链及_proto_和prototype的关系
- 使用Linux命令统计文件指定列中字符串出现次数
- js代码函数的几种写法!(若有遗漏,请告知,谢谢)
- webpack安装笔记及相关问题(续——Vue-cli)
- 抽象工厂模式
- [RK3288][Android6.0] 调试笔记 --- Camera设备节点往后偏移
- MFC CString类
- PHP安全
- zTree实现单击展开树