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

网站优化原理深圳网站建设比较有名的企业

网站优化原理,深圳网站建设比较有名的企业,网站建设实训心得3000字,长沙网站制作公司在哪里dojo/_base/declare模块是Dojo Toolkit中创建类的基础。declare支持多重继承#xff0c;这使得开发者能够编写更加灵活的代码并避免代码多次重写。Dojo.Dijit和Dojox模块都使用declare#xff0c;在这篇文章中#xff0c;你就知道为什么你也要这样做了。 准备学习 在开始学习… dojo/_base/declare模块是Dojo Toolkit中创建类的基础。declare支持多重继承这使得开发者能够编写更加灵活的代码并避免代码多次重写。Dojo.Dijit和Dojox模块都使用declare在这篇文章中你就知道为什么你也要这样做了。 准备学习 在开始学习这篇文章前请确保你复习过 模块定义 这篇文章了。 Dojo类的基本创建 declare函数是在dojo/_base/declare模块中定义的函数接受三个参数className,superClass和properties。 ClassName className参数代表要创建类的名称和命名空间。命名的类都放置在全局作用域内className也可以通过命名空间代表继承链。 命名类 // Create a new class named mynamespace.MyClass declare(mynamespace.MyClass, null, {// Custom properties and methods here});命名类mynamespace.MyClass现在可以在应用的全局范围内使用了。 类只有在要被Dojo parser使用的情况下才能被命名其他的类可以忽略className这一参数。 匿名类 // Create a scoped, anonymous class var MyClass declare(null, {// Custom properties and methods here});myClass现在就可以在作用域内被使用了。 SuperClass(es) SuperClass参数值可以为空可以是一个类也可以使类的集合。如果一个新类继承至多个类那么类集合中的第一个类是基础模型剩下的类都是混合类。 不继承的类 var MyClass declare(null, {// Custom properties and methods here});null代表这个类不继承至任何类。 一个类继承自另一个类 var MySubClass declare(MyClass, {// MySubClass now has all of MyClasss properties and methods// These properties and methods override parents});新的类MySubClass将继承MyClass的属性和方法。稍后我们讨论如何通过第三个参数来重写父类的属性或方法。 继承自多个类 var MyMultiSubClass declare([MySubClass,MyOtherClass,MyMixinClass ],{// MyMultiSubClass now has all of the properties and methods from:// MySubClass, MyOtherClass, and MyMixinClass});一个类数组就代表类是多重继承父类的属性和方法将继承给子类类数组的第一个类作为子类的基础模板其他的类将混合进去。 如果一个属性或方法在多个父类中出现那么子类将继承最后一个类的属性或方法。 属性和方法对象 declare的最后一个参数是一个对象这个对象的作用是在新类中重写父类的同名属性或同名方法。 自定义属性和方法 // Class with custom properties and methods var MyClass declare(MyParentClass, {// Any propertymyProperty1: 12,// AnothermyOtherProperty: Hello,// A methodmyMethod: function(){// Perform any functionality herereturn result;} });举例类的创建和继承 以下的代码创建了一个窗口小部件并继承自dijit/form/Button define([dojo/_base/declare,dijit/form/Button ], function(declare, Button){return declare(mynamespace.Button, Button, {label: My Button,onClick: function(evt){console.log(I was clicked!);this.inherited(arguments);}}); });从以上的代码片段可以得出结论 类名叫mynamespace.Button这个类可以在全局作用域内通过mynamespace.Button或者模块的返回值被调用。这个类继承自dijit/form/Button。这个类自定义了一些属性和方法。接下来让我们通过构造函数来深入学习类的创建。 构造函数   类中最特殊的函数之一就是构造函数。当类初始化时构造函数就会被触发并在新的对象中运行。这就意味着this关键字指向的是新的实例而不是原来的类。构造函数也可以接受一些初始化参数。 // Create a new class var Twitter declare(null, {// The default usernameusername: defaultUser,// The constructorconstructor: function(args){declare.safeMixin(this,args);} });创建一个实例 var myInstance new Twitter();在初始化实例的时候如果不指定username那么实例将采用defaultUser作为实例名。为了使用safeMixin的方法传入一个username参数 var myInstance new Twitter({username: sitepen });现在新的实例就用sitepen作为username了。 继承   如上所述继承就是新的实例将复制declare的第二个参数中的父类的属性和方法如下所示 // Define class A var A declare(null, {// A few properties...propertyA: Yes,propertyB: 2 });// Define class B var B declare(A, {// A few properties...propertyA: Maybe,propertyB: 1,propertyC: true });// Define class C var C declare([mynamespace.A, mynamespace.B], {// A few properties...propertyA: No,propertyB: 99,propertyD: false });类的新实例的属性如下 // Create an instance var instance new C();// instance.propertyA No // overridden by B, then by C // instance.propertyB 99 // overridden by B, then by C // instance.propertyC true // kept from B // instance.propertyD false // created by C设置和重写数字字符串和布尔型变量是线性的。在使用数组和对象的时候就要留意它们的作用域。在return中定义的数组或对象会被所有对象的实例所共享。在构造函数中定义的数组和对象就只是各个实例所拥有的了。可以参考 dojo/_base/declare 获取更多相关的信息。 this.inherited   尽管完全重写方法是很有用的但有时候一个继承链上的每个构造函数都会运行以保护它原始的功能。这时候就是this.inherited(argumengs)申明出场的时候了。this.inherited(argumengs)申明会调用父类中同名方法。如下所示 // Define class A var A declare(null, {myMethod: function(){console.log(Hello!);} });// Define class B var B declare(A, {myMethod: function(){// Call As myMethodthis.inherited(arguments); // arguments provided to As myMethodconsole.log(World!);} });// Create an instance of B var myB new B(); myB.myMethod();// Would output: // Hello! // World!this.inherited方法可以任何时候在子类的代码中调用。有时候你需要在子类中函数的中间或尾部调用inherited()还有你不能再构造函数中调用它。 结论   在Dojo Toolkit中declare函数式是创建模块化和可重用类的关键。declare允许通过多个类和对个属性方法来实现类的多重继承。可喜的是declaer是很容易学习的它允许开发者避免重复写同样的代码。 dojo/_base/declare   想要进一步学习declare和类的创建那就查看下面的资源 dojo.declaredojo.mixin Reference GuideWriting Your Own Widget 本系列文章翻译至Dojo官网旨在学习Dojo并提高英语阅读能力有翻译错误的地方请多指正谢谢 转载于:https://www.cnblogs.com/ruowind/archive/2013/02/04/2892055.html
http://www.zqtcl.cn/news/801976/

相关文章:

  • 嘉兴云推广网站贵州毕节网站建设
  • 班级网站模板青岛哪里有做网站公司的
  • 建设工程设计招标信息网站.制作一个聊天软件需要多少钱
  • 校园网站建设的意见新闻聚合网站开发 技术
  • 网站推广公司兴田德润电话多少wordpress 弹框
  • 大连网站建设谁家好软件开发需要什么技术
  • 广州网站建设哪家便宜成都电商app开发
  • 网站qq访客统计青岛网站设计定制
  • 山东嘉祥做网站的有哪几家销售外包
  • 怎么做网站_旅游网站定位
  • 湛江seo推广公司aso优化渠道
  • 网站设计培训机构内蒙古网上办事大厅官网
  • 什么是网站空间信息网站备案号中信息有变
  • 网站建设的基础怎么提升网站流量
  • 网站开发线框网页设计网站建设过程报告
  • 怎么用html做移动网站吗免费装修设计软件
  • 门头沟石家庄网站建设鞍山怎么样做一个自己的网站
  • 网站安装代码宣传网站建设背景
  • 网站空间续费东莞网站建设(信科分公司)
  • 少儿教育网站建设价格网页制作讲解视频
  • 网站开发方向的工作网站怎么做排名
  • 建设网站烧钱iis配置网站是什么
  • 新网站建设特色网站建设信息表
  • 商城做网站家具网站模板
  • 国有企业网站建设网站悬浮qq
  • 上海建站宝盒微网站生成app
  • 做网站是什么时候分页有哪些制作网站的公司
  • 专业柳州网站建设哪家好5千ip的网站能赚多少钱
  • 网站开发代理最火网页游戏
  • 做网站运营工资多少网站建设协议需要注意的问题