




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
常用的JavaScript模式 常用的JavaScript模式有哪些?模式是解决或者避免一些问题的方案。下面YJBYS小编为大家列出几种常用的JavaScript模式,欢迎大家阅读学习! 在JavaScript中,会用到一些常用的编码模式。下面就列出了一些常用的JavaScript编码模式,有的模式是为了解决特定的问题,有的则是帮助我们避免一些JavaScript中容易出现的错误。 单一var模式 所谓“单一var模式”(Singlevarpattern)就是指在函数顶部,只使用一个var进行变量声明的模式。例如: functionfunc(){ vara=1, b=2, sum=a+b, myObject={},i, j; //othercode} 使用这个模式的好处: 在函数顶部展示了所有函数中使用的局部变量 防止变量提升引起的问题 变量提升 JavaScript允许在函数的任意地方声明变量,但是效果都等同于在函数顶部进行声明,这个是所谓的变量提升(Hoisting)。 看一个例子: varnum=10; functionfunc(){ alert(num);//undefined varnum=1; alert(num);//1}func(); 从这个例子可以看到,第一次alert的值并不是10,而是undefined。所以,应该尽量使用“单一var模式”来避免类似的问题。 关于变量提升的细节,请参考我前面一篇JavaScript的执行上下文。 for-in循环 在JavaScript中,for-in循环主要用来枚举对象的属性。 但是,由于JavaScript中原型链的存在,一般都会结合hasOwnProperty()来使用for-in循环,从而过滤原型链上的非该对象的属性。 varwilber={ name:"Wilber", age:28, gender:"male"};Object.prototype.printPersonalInfo=function(){console.log(this.name,"is",this.age,"yearsold"); };for(varpropinwilber){if(wilber.hasOwnProperty(prop)){console.log(prop,":",wilber[prop]); } } 开放的大括号位置 根据开发人员的习惯,开放大括号的位置会有不同的选择,可以和语句放在同一行,也可以放在新的一行: vartotal=10;if(tatal>5){console.log("biggerthan5"); }if(tatal>5) {console.log("biggerthan5"); } 两种形式的代码都能实现同样的逻辑,但是,JavaScript允许开发人员省略分号,JavaScript的分号插入机制(semicoloninsertionmechanism)会负责加上省略的分号,这时开放大括号的位置不同就可能产生不同的结果。 看一个例子: functionfunc(){return { name:"Wilber" }; } alert(func());//undefined 之所以得到的结果是undefined就是因为JavaScript的分号插入机制,在return语句之后自动添加了分号。 调整一下开放的大括号的位置就可以避免这个问题: functionfunc(){return{ name:"Wilber" }; } alert(func());//[object] 所以,关于开放的大括号位置,建议将开放的大括号放置在前面语句的同一行。 强制new模式 JavaScript中,通过new关键字,可以用构造函数来创建对象,例如: functionPerson(name,city){this.name=name;this.city=city; this.getInfo=function(){console.log(this.name,"livesat",this.city); } }varwill=newPerson("Will","Shanghai"); will.getInfo();//WilllivesatShanghai 但是,如果开发人员忘记了new关键字,那么构造函数中的this将代表全局对象(浏览器中就是window对象),所有的属性将会变成全局对象的属性。 functionPerson(name,city){this.name=name;this.city=city; this.getInfo=function(){console.log(this.name,"livesat",this.city); } }varwill=Person("

萌运****魔王
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf