(function({
})();
自我执行的匿名函数
这里事件绑定的写法其实是为每个星星都绑定一次事件,导致浪费,特别是星星非常多的时候,会很明显,解决办法:给父容器上 绑定一次事件,利用事件冒泡
全局变量的弊端:和他人合作或者程序非常强大时,这么多的全局变量会造成非常大的隐患,当其他人修改你的代码或添加新功能的时候,很有可能和你的变量重名,造成冲突,导致bug产生。所以要注意全局变量的问题,特别是多人合作的时候。即时只有你一个人维护代码,但是当你几个月回来之后添加新功能的时候,也会出现这样的问题
解决办法:1.模拟匿名空间,比如只暴露一个全局变量,加上独有的标记,一切为了防止冲突(eg: var LXY_rating),所有的变量都可以变成它的属性,函数看做是他的方法 2.利用闭包的特性,js中有函数作用域,函数中的变量和函数都是局部的(自执行函数),把所有的变量和函数都扔到自执行函数里,就会变成自执行函数
关于全局变量问题:
1、模拟命名空间(声明一个对象,全局变量就是对象的属性;函数就是对象的方法);
2、闭包 ----(function(){})();该函数自执行,里面定义的变量都是局部变量。
关于事件绑定浪费问题:
$item.on 为每个星星绑定都绑定了相同的事件,导致浪费;
如何解决?事件委托(冒泡),意思就是将事件绑定到父元素中,再执行事件时只要判断事件触发的元素是目标元素即可;