您所在位置: 网站首页 / 常用的JavaScript模式.docx / 文档详情
常用的JavaScript模式.docx 立即下载
2025-08-16
约9千字
约32页
0
19KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

常用的JavaScript模式.docx

常用的JavaScript模式.docx

预览

免费试读已结束,剩余 27 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

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("
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

常用的JavaScript模式

文档大小:19KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用