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

来源:6-3 使用JS实现函数

慕仙5237505

2017-11-17 11:39

问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回答

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

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

    慕仙5237...

    哦,那不加下划线,比如this= $(this)zheya这样行不行啊或者a1=this这种

    2017-11-27 19:24:23

    共 1 条回复 >

网页定位导航特效

本课程讲解网页定位导航特效,仿天猫版地狗购物网,你值得拥有

71404 学习 · 486 问题

查看课程

相似问题