当前位置: 首页 > news >正文

黄山市网站建设网络设计报告模板

黄山市网站建设,网络设计报告模板,做一个app上架需要多少费用,设计网站建设图片上文,通过基本的对象创建问题了解了构造函数#xff0c;本文#xff0c;我们接着上文继续了解构造函数的基本特性#xff0c;以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说#xff0c;是原型上的#xff0c;对象是通过查找到原型找到 constructor属性… 上文,通过基本的对象创建问题了解了构造函数本文我们接着上文继续了解构造函数的基本特性以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说是原型上的对象是通过查找到原型找到 constructor属性 ).后面讲到原型的时候我会用示意图的方式说明 1 function CreateObj(uName) {2 this.userName uName;3 this.showUserName function () {4 return this.userName;5 }6 }7 var obj1 new CreateObj(ghostwu);8 var obj2 new CreateObj(卫庄);9 console.log( obj1.constructor CreateObj ); //true 10 console.log( obj2.constructor CreateObj ); //true 默认情况下对象的constructor等于实例化对象的构造函数, constructor最初的作用是用来标识对象的但是并不是特别准确因为constructor能被修改, 识别对象一般用instanceof关键字. 什么是instanceof 要理解这个关键字需要搞清楚原型链这里我提前把他放出来 //假设instanceof运算符左边是L右边是R L instanceof R //instanceof运算时通过判断L的原型链上是否存在R.prototype L.__proto__.__proto__ ..... R.prototype //如果存在返回true 否则返回false 注意instanceof运算时会递归查找L的原型链即L.__proto__.__proto__.__proto__.__proto__...直到找到了或者找到顶层为止。 所以一句话理解instanceof的运算规则为 instanceof检测左侧的__proto__原型链上是否存在右侧的prototype原型。 console.log( obj1 instanceof Object ); //trueconsole.log( obj2 instanceof Object ); //trueconsole.log( obj1 instanceof CreateObj ); //trueconsole.log( obj2 instanceof CreateObj ); //true obj1,obj2之所以是Object的实例因为所有对象继承自Object 借用构造函数 一个空对象可以借用现有的构造函数完成属性和方法的复制 1 function CreateObj(uName) {2 this.userName uName;3 this.showUserName function () {4 return this.userName;5 }6 }7 var obj new Object();8 CreateObj.call( obj, ghostwu );9 console.log( obj.userName ); //ghostwu 10 console.log( obj.showUserName() ); //ghostwu 构造函数的优点与缺点 优点就是能够通过instanceof识别对象缺点是每次实例化一个对象都会把属性和方法复制一遍 1 var obj1 new CreateObj(ghostwu); 2 var obj2 new CreateObj(卫庄); 3 4 console.log( obj1.showUserName obj2.showUserName ); //false 从以上执行结果可以看出obj1.showUserName和obj.showUserName不是同一个【在js中引用类型比较的是地址, 函数是一种引用类型】而是存在两个不同的内存地址因为每个对象的属性是不一样的这个没有什么问题但是方法执行的都是一样的代码所以没有必要复制存在多份浪费内存.这就是缺点 怎么解决构造函数的方法复制多次的问题 1 function CreateObj(uName) {2 this.userName uName;3 this.showUserName showUserName;4 }5 function showUserName (){6 return this.userName;7 }8 var obj1 new CreateObj(ghostwu);9 var obj2 new CreateObj(卫庄); 10 console.log( obj1.showUserName obj2.showUserName ); //true 把对象的方法指向同一个全局函数showUserName, 虽然解决了多次复制问题但是全局函数非常容易被覆盖也就是大家经常说的污染全局变量. 比较好的解决方案 通过原型(prototype)对象把方法写在构造函数的原型对象上 1 function CreateObj(uName) { 2 this.userName uName; 3 } 4 CreateObj.prototype.showUserName function(){ 5 return this.userName; 6 } 7 var obj1 new CreateObj(ghostwu); 8 var obj2 new CreateObj(卫庄); 9 console.log( obj1.showUserName obj2.showUserName ); //true 什么是原型对象以及原型链且听下回分解 转载于:https://www.cnblogs.com/ghostwu/p/7434609.html
http://www.zqtcl.cn/news/199557/

相关文章:

  • 2018做网站还是app上海搜索seo
  • 网站建设用模板好吗罗湖网站制作费用
  • 网站图片延时加载app推广视频
  • 郑州设计师网站个人搭建网站要多少钱
  • 网站制作成品下载wordpress怎么更改样式
  • 河北省城乡和建设厅网站首页网站维护属于什么部门
  • 西安建网站公司哪家好网站导航条设计欣赏
  • 张家港网站网络优化济南网站建设0531soso
  • 关于网站的建设深圳搜索优化排名
  • 网站建设的布局建设通破解vip
  • 怎样做公司网站介绍网站百度排名优化
  • 广州网站建设工作室招聘wordpress在哪里设置编辑器
  • 苏州网站建设功能大宗交易平台软件
  • 无域名网站 能否被百度品牌营销优化
  • 做爰全过程免费的网站视频做网站视频背景
  • 网站布局设计分析特点手机网站设计欣赏网站
  • 建设网站对服务器有什么要求灌南县规划局网站一品嘉苑规划建设
  • 常平镇仿做网站wordpress教程 菜单
  • 大气的企业网站做网站服务怎么赚钱
  • 如何用网站做淘宝客网易企业邮箱怎么修改密码
  • 白酒网站设计wordpress增加网址大全
  • 网站上图片可以做商业作品吗成都十大景观设计公司
  • 自助建站网站哪个好2017织梦网站怎么做seo
  • 佛山新网站建设咨询做业精灵官方网站
  • 大庆网站设计费用asp网站仿制
  • 革吉网站建设网页游戏中心大全
  • 好的网站特点京东物流网站建设特点
  • 昆明企业自助建站系统网站建设技术交流
  • 卖网站模板网站哪家做的比较好
  • 舟山网站网站建设视频网站建设应该注意什么