为了账号安全,请及时绑定邮箱和手机立即绑定

关于构建函数添加,移除,是否有 等返回值的问题 及 变量申明不用_下划线的区别问题,求大神详解

问1:hasclass为社么是return?不能用className =obj.className.match(new RegExp("(\\s|^)" + name + "(\\s|^)"));  吗?而其他2个都那么用的,见截图

问2: var item = items[i];var itemtop = item.offsetTop();     我这里变量名没用下划线_item  和 item 有区别吗?好像听说用下划线是实例啥来着               

function hasclass(obj,name){
            return obj.className.match(new RegExp("(\\s|^)" + name + "(\\s|^)"));
        }
        
        function removeclass(obj,name){
            if(hasclass(obj,name)){
                var reg = new RegExp("(\\s|^)" +name + "(\\s|^)");
                obj.className =  obj.className.replace(reg, "");
            }
        }
        
        function addclass(obj,name){
            if(!hasclass(obj,name)){
                obj.className += " " + name;
            }
        }
       

正在回答

1 回答

  1. 这里的hasClass是用来判断元素是否有某个class的,只需要读取需要的值即可。而后面两个方法是用来操作(增加、删除)class的,是需要操作DOM,需要改变值的,所以会有赋值操作。

  2. 变量的命名没有特别的讲究,可以有自己的风格。通常变量名前面加下划线,表示这个变量是这个方法中的私有变量。

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

哦,那不加下划线,比如this= $(this)zheya这样行不行啊或者a1=this这种
2017-11-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于构建函数添加,移除,是否有 等返回值的问题 及 变量申明不用_下划线的区别问题,求大神详解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信