javascript构造函数以及原型对象的理解
发布时间 - 2026-01-10 22:30:32 点击率:次以下是一个构造函数的例子

如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的。
//定义一个构造函数
function People(name,age){
this.name=name;
this.age=age;
this.dothings=function(){
retrun this.name+this.age;
}
}
var people1 = new People("panda1",25);
var people2 = new People("panda2",26);
alert(people1.name==people2.name) //false
另外一种编写原型对象的方法,通过字面量的方式创建原型对象,这里{}就是对象,是Object,new Object相对于{}
People.prototype={
constructor:People //强制指向People
name:"panda",
age:25,
dothings:function(){
return this.name+this.age;
}
}
var people = new People();
alert(people.constructor); //function People(){}
使用字面量的方式创新对象,使用constructor属性不会指向实例,而会指向Object。
创建的每一个函数都有一个prototype(原型)属性,也就是一个对象,原型的用途:包含由特定类型的所有实例共享的属性和方法。换句话说就是prototype通过调用构造函数而创建的那个对象的原型对象。
原型对象的好处:让所有对象实例共享它的所包含的属性与方法,不必在构造函数中定义对象信息,而是可以直接将这些添加到原型中。
//声明一个构造函数
function People(){}
//在原型添加属性
People.prototype.name="panda";
People.prototype.age=25;
people.prototype.dothings=function(){
return this.name+this.age;
}
//实例化构造函数
var people1 = new People();
var people2 = new People();
alert(people1.name==perople2.name) //true 因为都是原型里的方法,它们的地址是共享的,大家都来自同一地方。
使用对象实例无法访问到prototype,prototype属性是一个对象,需要访问prototype对象,通过people.__proto__来访问或者使用构造函数名(对象名)People.prototype,但是这个属性在IE浏览器不支持(undefind),__proto__是指向原型对象的一个指针,
另外还有一个constructor属性,这是一个构造属性,获取构造函数本身,作用是:被原型指针定位,得到构造函数本身,也就是对象实例对应原型对象的作用。
判读一个对象是否指向该构造函数的原型对象,可以使用isPrototypeOf方法来测试
People.prototype.isPrototypeOf(people1) //true
如果实例与原型里同时存在相同的属性,比如例子中的People下的name属性,
var people = new People(); people.name="bear"; alert(people.name); //bear alert(people1.name); //panda
实例属性并没有重新原型属性,实例的对象采用就近原则。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 构造函数
# 原型对象
# 一文秒懂JavaScript构造函数、实例、原型对象以及原型链
# 详解js中的原型
# 原型链
# js 原型对象和原型链理解
# 图文详解JavaScript的原型对象及原型链
# 浅谈JS原型对象和原型链
# JS原型对象操作实例分析
# JavaScript原型对象原理与应用分析
# JavaScript原型对象、构造函数和实例对象功能与用法详解
# js使用原型对象(prototype)需要注意的地方
# 深入理解javascript构造函数和原型对象
# 全面解析js中的原型
# 是一个
# 都是
# 都有
# 大家都
# 也就
# 这是一个
# 还有一个
# 可以直接
# 不支持
# 可以使用
# 相对于
# 方法来
# 所包含
# 无法访问
# 来访问
# 是唯一
# retrun
# var
# dothings
# brush
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
如何在IIS中新建站点并配置端口与IP地址?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
iOS验证手机号的正则表达式
详解CentOS6.5 安装 MySQL5.1.71的方法
如何用wdcp快速搭建高效网站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
HTML 中动态设置元素 name 属性的正确语法详解
用yum安装MySQLdb模块的步骤方法
千库网官网入口推荐 千库网设计创意平台入口
长沙做网站要多少钱,长沙国安网络怎么样?
html5的keygen标签为什么废弃_替代方案说明【解答】
如何在IIS7上新建站点并设置安全权限?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Python文件异常处理策略_健壮性说明【指导】
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何基于PHP生成高效IDC网络公司建站源码?
如何选择可靠的免备案建站服务器?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
详解Android图表 MPAndroidChart折线图
无锡营销型网站制作公司,无锡网选车牌流程?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
高端建站三要素:定制模板、企业官网与响应式设计优化
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
WEB开发之注册页面验证码倒计时代码的实现
Laravel如何实现用户注册和登录?(Auth脚手架指南)
5种Android数据存储方式汇总
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
,南京靠谱的征婚网站?
微信小程序 配置文件详细介绍
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
大连 网站制作,大连天途有线官网?
C#如何调用原生C++ COM对象详解
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
java中使用zxing批量生成二维码立牌

