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

网页美工设计网站东莞网站建设推广服务

网页美工设计网站,东莞网站建设推广服务,京东网上商城首页,99建筑网99建设工程教育网上文,通过基本的对象创建问题了解了构造函数#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/984386/

相关文章:

  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化
  • 织梦网络设计工作室网站模板镇江市精神文明建设网站
  • 网站管理工具装修公司设计软件有哪些
  • 招标网站的服务费怎么做分录什么网站做玩具的比较多
  • 青海省住房建设厅网站WordPress主题启用出现错误
  • 自己怎么建网站网站的seo 如何优化
  • 博客网站模板下载如何自学美工
  • 哪个免费建站好专业seo要多少钱
  • 做3d建模贴图找哪个网站珠海建设网站公司简介
  • 网站开发过程前端后端qq刷赞网站咋做
  • 湘潭高新区建设局网站旅游做攻略的网站有哪些
  • wordpress网站云备份网站模块插件是怎么做的
  • 郑州市城乡建设规划网站深圳十佳设计公司排名
  • 上海建设项目环保验收公示网站两新支部网站建设
  • 网站开发移动端网络系统软件应用与维护
  • 浙江网站建设营销网站后台管理系统一般用户名是什么
  • 网站 空间 租用wordpress搬家需要修改
  • 做网站推广怎么找客户网站换空间 seo