幼儿饰品瑜伽美体用品美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

JavaScript创建对象

12月8日 孤小单投稿
  1工厂模式
  过程:
  使用newObject()显示创建一个obj对象
  把属性和方法直接添加到obj对象上
  return返回该obj对象
  缺点:工厂模式不能识别对象的类型。2构造函数模式
  改写上述代码:
  createPerson函数改成了Person函数
  构造函数模式与工厂模式的区别还有:
  没有显示地创建对象(没有用newObject())
  把属性和方法直接添加到this对象
  不需要return语句
  过程:
  通过newPerson()创建一个新对象
  构造函数Person的作用域指向新对象,即this指向了新对象
  执行构造函数中的代码,即把属性和方法添加到this上
  返回新对象
  注意:
  person1与person2保存着Person不同的实例。
  两个对象都有一个constructor属性,constructor属性指向P
  console。log(person1。constructor);Person
  console。log(person2。constructor);Person
  也就是说,自定义构造函数的实例可以通过constructor属性来唯一标识其为特定的类型。(这是工厂模式做不到的)
  alert(person1instanceofPerson);
  alert(person2instanceofPerson);
  alert(person1instanceofObject);
  alert(person2instanceofObject);
  构造函数模式的缺点
  缺点一、会创建多个完成相同任务的同名Function实例
  同上面的例子:
  Person的两个实例person1和person2,各自都有一个sayName方法。但person1。sayName和person2。sayName不是一样的,即这两个方法各自都是Function的一个实例。
  因为,ECMAScript的函数都是对象,其实可写作newFunction():
  this。sayNamefunction(){
  console。log(this。name);
  }
  可以写作
  this。sayNamenewFunction(console。log(this。name));
  也就是说:通过自定义构造函数模式,每通过newPerson()实例一个新的对象,也就创建了一个新的Function实例。每个person中的sayName方法是不一样的,是不同的实例。虽然他们之间有相同的名字、处理的代码相同。
  每创建一个新的Person实例,就又附带创建了新的Function实例。而这些Function实例,同名又干一样的事情,确实是没有必要!
  如何规避?
  将Person中sayName函数的定义放到构造函数的外部,改写如下:
  functionPerson(name,age,job){
  this。
  this。
  this。
  this。sayNamesayN
  }
  functionsayName(){
  console。log(this。name);
  }
  相当于在构造函数Person内部的sayName属性设置为全局函数sayName()。this。sayName则是一个指针,指向这个全局函数。
  这样就可以让多个Person实例的this。sayName属性都指向这个全局函数,从而没有创建过多的同名Function实例(干同样的事)。
  缺点二、全局函数
  看样子把构造函数内部的方法,定义到外部作全局函数就可以解决问题了。
  但是这个定义在全局作用域的函数,却只能给某类对象使用,听起来就怪怪的。
  还有,如果某构造函数需要很多方法,为了避免创建过多同名Function实例,难道我们要在全局作用域定义很多个函数吗?!3原型模式
  原型模式可以改善构造函数模式的缺点:
  4关于原型对象:
  我们创建的函数都具有一个prototype属性,该属性是个指针,指向该函数的原型对象。
  原型对象:可以让所有对象的实例共享它所包含的属性和方法
  原型对象都有一个constructor属性,该属性也是个指针,指向prototype属性所在的函数。
  因为Person。prototype原型对象,可以让Person的所有实例都共享它所包含的属性和方法。
  那也就不会像构造函数模式那样,需要创建许多同名Function实例或者在全局作用域定义许多个函数了。
  即,Person。prototype指向原型对象;
  Person。prototype。constructor指向P
  Person创建的实例person1与person2,〔〔prototype〕〕,仅仅指向Person。prototype(原型对象),与构造函数Person没有直接关系。
  原型模式的搜索
  当代码读取某个对象实例的某个属性时,是先从该实例上搜索查找有无该属性,若在实例本身check到了,那就返回该属性的值;如果在实例上找不到,那继续往上找,找实例的原型对象(Person。prototype)看有没有该属性。
  这也是为什么不同实例能共享原型对象里的属性和方法。
  简单的语法
  可以这么写:
  functionPerson(){};
  Person。prototype{
  name:John,
  age:22,
  job:enginee,
  sayName:function(){
  console。log(this。name);
  }
  }
  varperson1newP
  console。log(person1。constructorObject);
  console。log(person1。constructorPerson);
  因为说过,Person。prototype会有个constructor属性,这个属性指向prototype属性所在的函数。可见prototype现在没有写在Person里面了,而是在Object上。
  但是可以手动修改
  functionPerson(){};
  Person。prototype{
  constructor:Person,
  name:John,
  age:22,
  job:enginee,
  sayName:function(){
  console。log(this。name);
  }5组合使用构造函数模式与原型模式
  原型模式中的prototype原型对象,是给实例提供所有共享的方法和属性,但有的若是引用类型,则不适合被共享。
  那么就在构造函数模式中,定义实例属性(不希望被共享);用原型模式来为实例定义可以被共享的属性和方法。
投诉 评论 转载

背着书包上学堂讲述淡然文一点为凡早上,孩子穿好校服,背上书包去上学。低头向前走,红领巾在胸前飘扬。看着孩子背着书包的样子,我就忍不住小声唱着:小呀嘛小二郎,背着那书包上学堂。不怕……虽千万人,吾亦往矣我们是一家成立于双十一的创业公司。核心业务是区块链技术的一个落地应用。一个新的时代,呼唤新的英雄。寻联合创始人,推广团队。繁华人世,看到了什么?留给自己什么?迷茫什……一生,何求以前,总以为拥有的东西越多就会越快乐,所以拼命地去追求,什么都想抓在手里,以至于越焦虑越不安,患得患失。随着年龄的增长,才渐渐明白,我们常常过得不快乐,不是拥有的少,而是……这个年纪才有的烦恼公司里有个96年的小男生,昨天还是阳光男孩,今天就闷闷不乐。问其原因,才知道,许久不联系的女孩儿约他十一期间一起玩。我们说:这不是挺好的。他唉声叹气,说道上次……教师该如何锤炼课堂语言教师该如何锤炼课堂语言当今时代,我们的课堂教学可以通过信息化的各种手段来进行,但最传统的、最有感染力的还是课堂上的现场教学。在课堂教学中,教师的有声语言和无声语言是表情达……林生斌地震波震出新的高度2017。6。22,杭州保姆纵火案一出可谓地震般惊闻全国。男主的妻子和三个孩子全部葬身火场。这两天男主林生斌再婚生娃刷遍了网络。互联网是没有秘密的,苦心经营的深情人……python的未来Python言语有一个特点就是没有什么特别强势的,可是它能够使用都非常的多范畴,并且效率高的可怕,Python的使用范畴非常多,现在据了解国内应该是没有太多人学习Python,……JavaScript创建对象1工厂模式过程:使用newObject()显示创建一个obj对象把属性和方法直接添加到obj对象上return返回该obj对象缺点:工厂模式不能识……婆婆竟然用内裤擦桌子三观不合的婚姻,到底有多可怕?01。hr今天看到一个新闻很奇葩。小苏和男朋友谈恋爱谈了4年,到了谈婚论嫁的地步,于是小苏去到将来的准婆婆家拜访。男朋友家里在偏远的山区,他们火车转汽车,汽车转摩托……商海沉浮几起几落,逆境拼搏初心不改,我的人生我做主人生无常,世事沧桑。命运的转折,常常出乎人们的意料,它会在无意间,突然就发生了。顷刻间,人生的轨迹,发生了巨大的转变,生活也出现了巨大的落差。当生活的大潮,汹涌而来时,我无法回……恋爱2年结婚,男方在婚前挖了3个大坑,女子经高人指点后及时止心理学家亚科斯教授说:人生中90的不幸,都是因为不甘心,这是很多人不懂得及时止损的原因。及时止损是人生的大智慧,会让人止步于泥潭边,只是很多人因为不甘心,让自己的人……茶喝多了,人变成这个样子了。。筑梦茶乡福地湄潭湄江印象一生一世只为一杯好茶湄江印象好茶好印象百年品质如一喝茶,只是生活的一部分,并不能给生活带来根本的改变,但是茶喝多了,身体愈发觉得通透,生命的……
回顾与展望曾国藩一个人见过世面的6种表现猪坚强去世,被掩埋地下36天靠吃木炭喝雨水奇迹般存活下来自省句子一个人穷三年是因为际遇欠佳,穷十年就要自省锥肥(大河蜿蜒之六)下午。。。每个人的醒来都是一段宿命,每个人的笑容成了孤独的开始一个暗恋盗心贼的偷手的人的黑色星期天生儿育女到底是为了什么?看哭了无数人水力发电会影响地球自转速度?科学家表示人类已经影响了地球七绝。读伯牙钟子期故事有感(通韵。押安韵)如今投资,创业失败者多,负债后如何处理?
【歌词】幸运歌手:罗允权热博聚热点网 萦绕心间的温暖作文家里再也不用装路由器了,教你用微信就能轻。。。三星公布内存路线图,DDR6内存将突破10Gbps起诉开发商有时间限制吗,起诉费用是多少?智者见智,清者自清苹果11值得买吗?热评聚热点网 国庆穿衣搭配初秋穿这套衣服国庆出游回头率高的没话防潮层常见的构造做法毕业典礼的作文从头开始慢慢看作文杭州怎么去乌镇(绿城乌镇雅园养老项目)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找漯河衢州兴义眉山桂林阳泉玉溪简阳山东遂宁永城新余梧州洛阳泸州温州临汾清远营口常熟浙江大连桐乡宜昌