新闻详情

新闻详情

首页 / 资讯中心 / 详情

关于JavaScript的Prototype及原型对象的理解

发布时间:2026/9/30 6:33:36来源:尧图网络
关于JavaScript的Prototype及原型对象的理解
学习JavaScript时就一定会涉及到两个概念–prototype,原型对象。自己在做项目时可能无意中使用到但是却没有真正去了解这个东西在学会使用的基础上进一步去理解它会帮助自己吸收到更多不一样的知识。1.Prototypeprototype翻译过来称为原型。prototype是每个函数都具有的一个属性这个属性是一个指针指向这个函数的原型对象而且每个该对象产生的实例对象(new 操作符创建)都可以共享该对象prototype属性上的所有属性和方法。2.原型对象那么指向的原型对象又是怎么样的呢通过创建一个简单的构造函数打印该实例对象可以更好的去理解。functionPerson(){}varpnewPerson();//创建的一个Person类型的实例console.log(pinstanceofPerson)//trueconsole.log(p)谷歌浏览器打印p的结果:这里的Person是一个空的构造函数什么都没有。只有一个__proto__属性他的类型可以看到是一个Object对象。这个对象我们其实并没有定义这个对象就是Person的原型对象。通过下面的打印进一步验证:console.log(p.__proto__Person.prototype)//true这个__proto__是浏览器支持的一个属性这个属性这个实例内部的一个指针指向这个实例的构造函数的原型对象也就是Person.prototype.原型对象的结构是这样的Perosn的原型对象会自动获得一个constructor属性,这个属性指向其prototype属性所在函数也就是指向Person通过打印比较可以验证console.log(p.__proto__.constructorPerson)//true同时还从Object那里继承过来了一些方法如常用的hasOwnProperty,toString等。这些原型方法可以直接被实例调用也可以被重写。3.原型对象的拓展我们可以在原型对象上定义自己的方法和属性可以将对象之间都需要用到的一些共用方法和属性定义在这上面这样每个对象的实例不需要自己在函数里各自又重复写一遍代码来实现相同功能的方法。//页面functionPage(id,title){this.idid;this.titletitle;this.$div$(#id);this.init()}//显示Page.prototype.showfunction(){this.$div.show();}//隐藏Page.prototype.hidefunction(){this.$div.hide();}//这里的prototype上的title并没有生效。因为解析器在查询属性值过程中先从自身实例坐在函数内部先进行查询如果没有找到的情况下则顺着原型链一步步查询下去Page.prototype.title我是标题;//初始化Page.prototype.initfunction(){this.$div.find(.title).html(this.title)}//获取内容Page.prototype.getContentfunction(){varcontentthis.$div.find(.content).html();returncontent;}varuserPagenewPage(page-user,用户详情);varlogPagenewPage(page-log,日志详情);varuserContentuserPage.getContent();varlogContentlogPage.getContent();console.log(userContent)//我是用户界面console.log(logContent)//我是日志界面上面的构造函数通过传入不同的id管理对应不同的页面对象。每个页面实例之间都可以使用show(),hide()方法每个实例都各自管理着自己的属性,这样每个实例之间的修改不会影响其他实例。4.总结直接用一张图表示
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

手写Agent循环别再造轮子!AWS开源Strands Agents开箱即用 2026/9/30 14:37:33

手写Agent循环别再造轮子!AWS开源Strands Agents开箱即用

文章目录前言1. 先说说"手写循环"这条不归路1.1 第一版:model.generate() 工具调用1.2 然后噩梦开始2. Strands 是干嘛的2.1 分层设计:底座和组装分开3. 快速上手3.1 最简 SDK 用法(Python)3.2 最简 SDK 用法&#xff…

阅读更多 →
人形机器人,装上纯国产“神经”系统 2026/9/30 14:37:32

人形机器人,装上纯国产“神经”系统

机器人装上了纯国产的智能“神经”系统。 9月28日,在湖北宜昌举行的国产化电子架构具身智能机器人发布会上,首台搭载全国产化电子架构的具身智能机器人亮相。记者了解到,现场展示机器人搭载的全国产化电子架构由上市公司东土科技自主研发。电…

阅读更多 →
数据科学与大数据技术本科毕业,数据分析和大数据开发怎么选 2026/9/30 14:37:32

数据科学与大数据技术本科毕业,数据分析和大数据开发怎么选

数据科学与大数据技术本科应届生选方向,优先匹配自身已有的实操积累和意向城市的岗位供给:如果已经练过3个月以上SQL取数、做过至少1次业务分析练习,优先冲数据分析;如果已经敲过半年以上Java或Scala代码,搭建过Hadoop…

阅读更多 →
DDoS攻击后的应急响应流程(实战笔记)——工程师必备知识 2026/9/30 14:37:18

DDoS攻击后的应急响应流程(实战笔记)——工程师必备知识

本文深入探讨DDoS攻击后的应急响应流程(实战笔记),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。作为DDoS与CC防护从业者,掌握DDoS攻击后的应急响应流程(实战笔记)不仅能提升系统稳定…

阅读更多 →
Jev 上线24小时,13%付费团队切换:决策模型为什么先火在付费团队 2026/9/30 14:37:17

Jev 上线24小时,13%付费团队切换:决策模型为什么先火在付费团队

Jev 上线24小时,13%付费团队切换:决策模型为什么先火在付费团队 Jev 出隐身模式两周了。X 上吵翻了天,掘金热榜上连着三天有它的位置,Redis 之父下场泼冷水,DHH 顺势宣布「放下笔」——但我觉得这一周里最有信息量的信…

阅读更多 →
PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底 2026/9/30 14:36:57

PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底

PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底 【免费下载链接】PanWatch PanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉