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

国外购买域名网站计算机网站建设论文总结

国外购买域名网站,计算机网站建设论文总结,南宁网站建设公司招聘,网站建设 推广400电话1、Class 类是一种可选#xff08;而不是必须#xff09;的设计模式#xff0c;而且在 JavaScript 这样的 [[Prototype]] 语言中实现类是很别扭的。大致解决了以下问题#xff1a; 不再引用杂乱的 .prototype 了Button 声 明 时 直 接“ 继 承 ” 了 Widget#xff0c; …1、Class 类是一种可选而不是必须的设计模式而且在 JavaScript 这样的 [[Prototype]] 语言中实现类是很别扭的。大致解决了以下问题 不再引用杂乱的 .prototype 了Button 声 明 时 直 接“ 继 承 ” 了 Widget 不 再 需 要 通 过 Object.create(…) 来 替换 .prototype 对象也不需要设置 .proto 或者 Object.setPrototypeOf(…)。可以通过 super(…) 来实现相对多态这样任何方法都可以引用原型链上层的同名方法。这可以解决第 4 章提到过的那个问题构造函数不属于类所以无法互相引用——super() 可以完美解决构造函数的问题。class 字面语法不能声明属性只能声明方法。看起来这是一种限制但是它会排除掉许多不好的情况如果没有这种限制的话原型链末端的“实例”可能会意外地获取其他地方的属性这些属性隐式被所有“实例”所“共享”。所以class 语法实际上可以帮助你避免犯错。可以通过 extends 很自然地扩展对象子类型甚至是内置的对象子类型比如Array 或 RegExp。没有 class …extends 语法时想实现这一点是非常困难的基本上只有框架的作者才能搞清楚这一点。但是现在可以轻而易举地做到 2、Class陷阱 class 语法并没有解决所有的问题在 JavaScript 中使用“类”设计模式仍然存在许多深层问题。 你可能会认为 ES6 的 class 语法是向 JavaScript 中引入了一种新的“类”机制其实不是这样。class 基本上只是现有 [[Prototype]]委托机制的一种语法糖。 也就是说class 并不会像传统面向类的语言一样在声明时静态复制所有行为。如果你有意或无意修改或者替换了父“类”中的一个方法那子“类”和所有实例都会受到影响因为它们在定义时并没有进行复制只是使用基于 [[Prototype]] 的实时委托。 class C {constructor() {this.num Math.random();}rand() {console.log( Random: this.num );} } var c1 new C(); c1.rand(); // Random: 0.4324299... C.prototype.rand function() {console.log( Random: Math.round( this.num * 1000 )); }; var c2 new C(); c2.rand(); // Random: 867 c1.rand(); // Random: 432 ——噢但是他依然存在一些问题 class 语法无法定义类成员属性只能定义方法如果为了跟踪实例之间共享状态必须要这么做那你只能使用 .prototype 语法但是这种方法最大的问题是它违背了class语法的本意在实现中暴露泄露了.prototypeclass 语法仍然面临意外屏蔽的问题super 并不是动态绑定的它会在声明时“静态”绑定。所以super可能不会绑定到合适的对象需要使用toMethod…来手动绑定super类似于bind… // 意外屏蔽问题 class C {constructor(id) {// 噢郁闷我们的 id 属性屏蔽了 id() 方法this.id id;}id() {console.log( Id: id );} } var c1 new C( c1 ); c1.id(); // TypeError -- c1.id 现在是字符串 c1// 动态绑定问题 class P {foo() { console.log( P.foo ); } } class C extends P {foo() {super();} } var c1 new C(); c1.foo(); // P.foo var D {foo: function() { console.log( D.foo ); } }; var E {foo: C.prototype.foo }; // 把 E 委托到 D Object.setPrototypeOf( E, D ); E.foo(); // P.foo3、静态大于动态吗 通过上面的这些特性可以看出ES6 的 class 最大的问题在于像传统的类一样它的语法有时会让你认为定义了一个 class 后它就变成了一个未来会被实例化的东西的静态定义。你会彻底忽略 C 是一个对象是一个具体的可以直接交互的东西。但是 JavaScript 最强大的特性之一就是它的动态性任何对象的定义都可以修改除非你把它设置成不可变 4、总结 class 很好地伪装成 JavaScript 中类和继承设计模式的解决方案但是它实际上起到了反作用它隐藏了许多问题并且带来了更多更细小但是危险的问题。 class 加深了过去 20 年中对于 JavaScript 中“类”的误解在某些方面它产生的问题比解决的多而且让本来优雅简洁的 [[Prototype]] 机制变得非常别扭。
http://www.pierceye.com/news/557610/

相关文章:

  • 杭州高端设计网站建设大学生个人简历电子版
  • 北京旅游外贸网站建设手机制作手书app软件
  • 响应式网站 分辨率泉州教育网站
  • 企业在线购物网站建设做画册的网站
  • 做网站图片自动切换怎么建立官网
  • 河南制作网站电话免费的网站登录模板
  • 鹰潭做网站的建筑工程公司取名
  • 网站建设与运营实验开发一个网站的成本
  • 自考网站建设与管理资料郑州高端网站建设哪家好
  • 网站设计开发维护设计云网站
  • 北京工商局网站怎么做增资h5个人页面制作
  • 北京好的网站建设12个 网站模板 管理办法
  • vs2017 如何做网站最近一周新闻热点大事件
  • wordpress建站欣赏解释网站为什么这样做
  • 网站建设模板登录界面七牛wordpress插件
  • 手机 网站制作上饶企业网站建设
  • 网站建设需要知道什么软件深达网站制作深圳公司
  • 怎么做监控网站Wordpress页面函数
  • 梁平网站建设百度搜索排名优化哪家好
  • 芜湖网站建设芜湖狼道cad精品课网站建设
  • qq空间认证的网站后台根目录seo和sem是什么意思
  • 中国建设集团门户网站装修公司做网站
  • 东莞seo建站公司哪家好怎么把网站推广出去
  • 网站建设什么时候好豆瓣wordpress
  • 动漫网站设计报告最好的wordpress商城主题
  • 陕西餐饮加盟网站建设如何做一个网站代码
  • 合浦住房和城乡规划建设局网站网页设计培训机构学什么好
  • 做网站需要注意的地方模板ppt
  • 自己建立公司网站自助建站系统
  • 淅川微网站开发wordpress 侧边收起