javascript prototype原型详解(比较基础)

发布时间 - 2026-01-10 22:08:10    点击率:

javascript的prototype原型简单介绍:
prototype原型是javascript中特别重要的概念,属于必须要掌握,如果没有良好的掌握的话,进一步用好或者学好js基本是不可能的实现的事情,并且此概念稍有难度,可能对于初次接触的朋友来说有点困难,下面就通过代码实例简单介绍一下prototype原型的用法。

一.基本概念:

每一个函数都具有一个prototype属性。
此属性是一个指针,能够指向一个对象,而此对象将会被由构造函数创建的对象实例所共享,也就是会继承此对象。
总结:prototype所指向的对象是被构造函数所创建的对象实例所共同共享的。
创建的对象实例有一个内部属性[[Prototype]],它是一个指针,指向构造函数原型(prototype)指向的对象。
先看一段代码:

<script>
function antzone(name,age){
 this.webname=name;
 this.age=age;
}
antzone.prototype.getName=function(){
 return this.webname;
}
var oantzone=new antzone("",10);
console.log(oantzone.getName());
</script>

效果图:

图示如下:

上面图片基本说明了prototype的作用。
二.代码实例:
实例一:

function antzone(name,age){
 this.webname=name;
 this.age=age;
}
var obj={
 address:"江苏省徐州"
}
var oantzone=new antzone("",10);
antzone.prototype=obj;
console.log(oantzone.address);

看以上代码,很多朋友可能以为输出值是"江苏省徐州",但是实际输出内容是undefined,这是因为在使用构造函数创建对象oantzone的时候,oantzone对象内部属性[[Prototype]]将会指向antzone()构造函数的原型prototype所指向的对象,而后来antzone.prototype=obj是重置构造函数的原型,而oantzone的内置属性[[Prototype]]指向依然是原来的对象,自然oantzone.address是undefined。
实例二:

<script>
function antzone(name,age){
 this.webname=name;
 this.age=age;
}
var obj={
 address:"江苏省徐州"
}
antzone.prototype=obj;
var oantzone=new antzone("",10);
console.log(oantzone.webname+oantzone.address);
</script>

此代码和上一段代码的唯一不同,就是第八行和第九行进行了一下交换,这样就可以输出"江苏省徐州",这个就不难理解了,因为对象实例是在重置原型以后创建的。
实例三:

function antzone(name,age){
 this.webname=name;
 this.age=age;
}
var obj={
 address:"江苏省徐州"
}
antzone.prototype.add=obj;
var oantzone=new antzone("",10);
console.log(oantzone.add.address);

以上代码只是修改对象原型,而不是重置对象原型。


# js  # prototype  # 原型  # javascript prototype的深度探索不是原型继承那么简单  # JavaScript为对象原型prototype添加属性的两种方式  # js中使用使用原型(prototype)定义方法的好处详解  # javascript prototype 原型链  # JS构造函数与原型prototype的区别介绍  # 跟我学习javascript的prototype原型和原型链  # javascript prototype原型操作笔记  # js使用原型对象(prototype)需要注意的地方  # 浅谈js构造函数的方法与原型prototype  # [js高手之路]图解javascript的原型(prototype)对象  # 原型链实例  # Javascript 原型和继承(Prototypes and Inheritance)  # JS原型prototype和__proto__用法实例分析  # 徐州  # 江苏省  # 将会  # 是一个  # 是在  # 它是  # 如果没有  # 说明了  # 这是因为  # 介绍一下  # 稍有  # 先看  # 用好  # 基本概念  # 就可以  # 有一个  # 而不是  # 必须要  # 是不可能  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  如何用免费手机建站系统零基础打造专业网站?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  java ZXing生成二维码及条码实例分享  Laravel如何使用.env文件管理环境变量?(最佳实践)  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何在IIS中配置站点IP、端口及主机头?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Swift中switch语句区间和元组模式匹配  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  微信小程序 canvas开发实例及注意事项  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何确保FTP站点访问权限与数据传输安全?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Python进程池调度策略_任务分发说明【指导】  Python文件操作最佳实践_稳定性说明【指导】  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  网站建设整体流程解析,建站其实很容易!  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何记录自定义日志?(Log频道配置)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  常州企业网站制作公司,全国继续教育网怎么登录?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  EditPlus中的正则表达式实战(6)  浅谈javascript alert和confirm的美化  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何快速使用云服务器搭建个人网站?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  网站制作企业,网站的banner和导航栏是指什么?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  怎样使用JSON进行数据交换_它有什么限制  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程