JavaScript原型到原型链
2021/5/17 14:25:59
本文主要是介绍JavaScript原型到原型链,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原型(显示原型和隐式原型)
每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性。
核心:实例对象的隐式原型的值为其对应构造函数的显式原型的值
function Fun(){ //内部自动执行语句:this.prototype={}; }
1.每个函数function
都有一 个prototype, 定义函数时自动添加,显式原型prototype是一个对象,且默认指向一个空的Object对象
console.log(Fun.prototype);
2.每个实例对象
(除了 null )都有一个__proto__属性, 称为隐式原型,这个属性会指向该对象的原型
let obj = new Fun();//内部自动执行语句:this.__proto__=Fun.prototype; console.log(obj .__proto__);
3.实例对象的隐式原型的值为其对应构造函数的显式原型的值
console.log(obj .__proto__ == Fun.prototype);//true
Fun.prototype.test=function(){ console.log("在函数的显示原型属性中添加方法"); } obj.test()//使用隐式原型调用显示原型定义的方法
总结:
实例看隐式原型
函数看显示原型
原型链
原型链使用来查找属性值的
1.读取对象的属性值时: 会自动到原型链中查找
2.设置对象的属性值时不会查找原型链,如果当前对象中没有此属性,直接添加此属性并设置其值
3.方法一般定义在原型中,属性一般通过构造函数定义在对象本身上
function Fn() {} Fn.prototype.a ='AAA'; var fn1=new Fn(); console.log(fn1.a);//AAA var fn2 = new Fn(); fn2.a = 'BBB';//设置对象的属性值时不会查找原型链,如果当前对象中没有此属性,直接添加此属性并设置其值 console.log(fn1.a, fn2.a)//AAA , BBB
原型中常用的方法
hasOwnProperty
instanceof
- instanceof是如何判断的?
- 表达式: A instanceof B
- 如果B函数的显式原型对象在A对象的原型链上, 返回true, 否则返回false
- Function是通过new自己产生的实例
最后推荐一篇好文章《JavaScript深入之从原型到原型链 #2》
这篇关于JavaScript原型到原型链的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)