全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript构造函数以及原型对象的理解

以下是一个构造函数的例子

如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的。

//定义一个构造函数
 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 


相关文章: linux top下的 minerd 木马清除方法  如何使用Golang安装API文档生成工具_快速生成接口文档  如何在IIS7上新建站点并设置安全权限?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何快速搭建高效简练网站?  如何快速选择适合个人网站的云服务器配置?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何快速完成中国万网建站详细流程?  北京制作网站的公司,北京铁路集团官方网站?  建站之星如何配置系统实现高效建站?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  全景视频制作网站有哪些,全景图怎么做成网页?  php json中文编码为null的解决办法  广州美橙建站如何快速搭建多端合一网站?  制作网站公司那家好,网络公司是做什么的?  如何设计高效校园网站?  建站之星如何实现网站加密操作?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何基于云服务器快速搭建个人网站?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何在IIS7中新建站点?详细步骤解析  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  建站主机核心功能解析:服务器选择与网站搭建流程指南  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站之星3.0如何解决常见操作问题?  如何选择高性价比服务器搭建个人网站?  如何快速建站并高效导出源代码?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何在IIS中新建站点并配置端口与IP地址?  北京网站制作公司哪家好一点,北京租房网站有哪些?  长沙做网站要多少钱,长沙国安网络怎么样?  移民网站制作流程,怎么看加拿大移民官网?  制作宣传网站的软件,小红书可以宣传网站吗?  如何高效配置香港服务器实现快速建站?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  实现虚拟支付需哪些建站技术支撑?  七夕网站制作视频,七夕大促活动怎么报名?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  建站之星如何一键生成手机站?  高防服务器如何保障网站安全无虞?  已有域名如何免费搭建网站?  建站之星后台管理系统如何操作?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何快速搭建二级域名独立网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。