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

河北省住房和城乡建设厅新网站安康市110报警平台

河北省住房和城乡建设厅新网站,安康市110报警平台,手机搞笑网站模板下载安装,微信如何修改wordpress文章目录 一、前言二、new.target 重写三、拓展阅读 一、前言 源码阅读过程中#xff0c;发现以下语句 new.target.prototype鉴于该语法为es6所有#xff0c;项目在编译过程中#xff0c;控制台报Unexpected token: punc(.)错误。按照常规处理#xff0c;应用babel-loade… 文章目录 一、前言二、new.target 重写三、拓展阅读 一、前言 源码阅读过程中发现以下语句 new.target.prototype鉴于该语法为es6所有项目在编译过程中控制台报Unexpected token: punc(.)错误。按照常规处理应用babel-loader即可解决此类问题。在.babelrc的 {presets: [[es2015]] }经过实践发现build阶段依旧报错。 故采用第二套解决方案使用es5语法重写es6。 二、new.target 重写 es5的构造函数前面如果不用new调用this指向window对象的属性就得不到值了所以之前都要在构造函数中通过判断this是否使用了new关键字来确保普通的函数调用方式都能让对象复制到属性。 1 function Person( uName ){2 if ( this instanceof Person ) {3 this.userName uName;4 }else {5 return new Person( uName );6 }7 }8 Person.prototype.showUserName function(){9 return this.userName; 10 } 11 console.log( Person( ghostwu ).showUserName() ); 12 console.log( new Person( ghostwu ).showUserName() );在es6中为了识别函数调用时是否使用了new关键字引入了一个新的属性new.target: 如果函数使用了new那么new.target就是构造函数 如果函数没有使用new那么new.target就是undefined es6的类方法中在调用时候使用newnew.target指向类本身没有使用new就是undefined 1 function Person( uName ){ 2 if( new.target ! undefined ){ 3 this.userName uName; 4 }else { 5 throw new Error( 必须用new实例化 ); 6 } 7 } 8 // Person( ghostwu ); //报错 9 console.log( new Person( ghostwu ).userName ); //ghostwu使用new之后new.target就是Person这个构造函数那么上例也可以用下面这种写法: 1 function Person( uName ){2 if ( new.target Person ) {3 this.userName uName;4 }else {5 throw new Error( 必须用new实例化 );6 }7 }8 9 // Person( ghostwu ); //报错 10 console.log( new Person( ghostwu ).userName ); //ghostwu1 class Person{2 constructor( uName ){3 if ( new.target Person ) {4 this.userName uName;5 }else {6 throw new Error( 必须要用new关键字 );7 }8 } 9 } 10 11 // Person( ghostwu ); //报错 12 console.log( new Person( ghostwu ).userName ); //ghostwu上例在使用new的时候, new.target等于Person。 掌握new.target之后接下来我们用es5语法改写上文中es6的类语法。 1 let Person ( function(){2 use strict;3 const Person function( uName ){4 if ( new.target ! undefined ){5 this.userName uName;6 }else {7 throw new Error( 必须使用new关键字 );8 }9 } 10 11 Object.defineProperty( Person.prototype, sayName, { 12 value : function(){ 13 if ( typeof new.target ! undefined ) { 14 throw new Error( 类里面的方法不能使用new关键字 ); 15 } 16 return this.userName; 17 }, 18 enumerable : false, 19 writable : true, 20 configurable : true 21 } ); 22 23 return Person; 24 })(); 25 26 console.log( new Person( ghostwu ).sayName() ); 27 console.log( Person( ghostwu ) ); //没有使用new,报错三、拓展阅读 《JavaScript进阶二十六ES各版本特性详解》
http://www.yayakq.cn/news/4271/

相关文章:

  • 广州做企业网站找哪家公司好网店代运营哪里有
  • 汕头门户网站建设芜湖网页美工设计
  • 专业网站有哪些平台网页制作策划路程怎么写
  • 东莞网站建设方案外包企业网站改版价格
  • 公司有网站域名后如何建网站网站建设pc指什么软件
  • 呼和浩特网站建设哪家好竞价排名软件
  • 北京做网站制作公司制作短视频最好的软件
  • pc网站制作公司寺庙网站素材
  • 潍坊专业网站建设哪家好宿迁网站建设哪家最好
  • 网站建设管理员海外新闻app
  • 创建5a 网站建设要求多个域名 一个网站
  • 开个捕鱼网站怎么做有谁做网站
  • 做行业导航网站七牛 wordpress 视频处理
  • flash网站源文件下载wordpress用阿里云图床
  • 网站域名注册后怎么建设wordpress主题页面底部编辑
  • 网站建设费维护费自助建设视频网站
  • 河南省建设工程网站科技馆网站建设方案
  • 做外链哪个网站好专业网站设计是什么
  • 官方网站数据如何做脚注随州网站制作价格
  • 北京做手机网站的公司套模板网站价格表
  • 网站改域名备案做网站需要用到哪些开发软件
  • 郑州公司网站制作兼职做网站编辑
  • 视觉传达设计网站山西seo和网络推广
  • 寻找网站开发信息查询系统
  • 网站镜像怎么做网站建设合同的主要内容
  • 网站建设的重点营销型网站建设的原则
  • 宣城市建设监督管理局网站下载wordpress前段会员中心
  • 做地接的网站代账公司如何拉客户
  • 网站安全建设工作总结宁波网站设计价格
  • 网站上怎样做轮播图把wordpress装进app