js笔记(对象)

前言:随着js应用场景的广泛,“能用js的场景最终都将使用js解决”,足以说明它的魅力,因此掌握js是必不可少的。

回顾一下之前使用js 的方法


场景:

这个布局分为三部分,上,左,右,点击左部按钮会进行ajax请求,返回不同的界面

返回a界面,a界面会引用a.js

返回b界面,b界面会引用b.js

js是客户端脚本,因此加载js文件之后,用户没有清除缓存之前文件就是一直存在的,因此存在一些缓存问题。

问题1:当a.js加载过后,在b.js中可以使用a.js的方法和行为,这样就会存在干扰,尤其是定时器行为

当a.js加载之后就会每隔1s执行一次isAlert();因为使用的是ajax,所以即使你已经离开了这个界面仍然会每隔1s执行一次isAlert();如图

问题2:如上所试,a.js和b.js有两个同名函数,若是在c页面同时要用到这两个函数,就比较麻烦,要么在新建一个c.js,复制两个函数并改成不同的名字然后引入。

秉承着不搞事不舒服的原则,开始折腾之旅

分析:若只有问题1,以最笨的方法来想,就是写个js每一次请求之前删除本地浏览器的所有缓存,但是这样造成的问题有点大,最突出的问题就是ajax是局部刷新,刷新后的页面是嵌入在原页面之内,因此来说原界面的一些依赖js是不能被删除的。同时给问题2的解决产生了较大难度。根据万事万物皆对象的原则,参考java的得到一些思路

为什么不能将每个js文件看成一个类呢?

一个js文件就是一个对象,对象.属性,对象.行为。同样的若是能封装,拆包,则就能完美的做到互不干扰

begin


 

在a页面:

<a href="javascript:prseonA.isAlert()">AisAlert</a>

在b页面

<a href="javascript:prseonB.isAlert()">BisAlert</a>

这样一同将问题2解决

在c页面

<a href="javascript:prseonA.isAlert()">AisAlert</a>
<a href="javascript:prseonB.isAlert()">BisAlert</a>

抽象:有许多杯子,有许多人,若是没有标明所有者,经常会发生拿错的情况,尤其是当两个杯子外表相近的时候。当标明所属的时候就不会发生这个问题。从口渴的时候直接去拿杯子,变成去拿自己的杯子。

以上的写法是在加载文件的时候自动创建了对象

修改为以下

function prseonA(){
this.isAlert=function () {
    alert("说不上爱别说谎,就一点喜欢");
}
}
<a href="javascript:new prseonA().isAlert()">AisAlert</a>

总结:将’一切皆对象‘从理解化为实用

转载于:https://my.oschina.net/u/3188070/blog/2045888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值