Javascript 什么';功能的含义是什么?

Javascript 什么';功能的含义是什么?,javascript,Javascript,我是javascript的新手,我从一本书中看到了上面的函数。但我不知道它是什么意思?希望有人能给我解释一下。非常感谢。这只是测试给定元素是否包含给定类。这对于具有多个类的元素很有用(较旧的浏览器默认不支持) 考虑像这样的元素。如果将其传递给函数,将得到如下结果: function hasClass( elem, cls ) { var reClass = new RegExp(' ' + cls + ' '); return reClass.test(' ' + elem.className

我是javascript的新手,我从一本书中看到了上面的函数。但我不知道它是什么意思?希望有人能给我解释一下。非常感谢。

这只是测试给定元素是否包含给定类。这对于具有多个类的元素很有用(较旧的浏览器默认不支持)

考虑像
这样的元素。如果将其传递给函数,将得到如下结果:

function hasClass( elem, cls ) {
var reClass = new RegExp(' ' + cls + ' ');
return reClass.test(' ' + elem.className + ' ');
}

它检查元素的class属性是否包含指定的class(cls)

我不确定空格的用途(我想它们应该是
\b
),但是这个函数测试
elem.className
是否与
cls
regex匹配。元素可能有
class
属性或DOM属性值(由Javascript中的
.className
访问)可以是
..
。此函数“尝试”显示一个相当基本的正则表达式(模式)是否与作为参数传递的DOM元素节点(
elem
)中该属性中的类名匹配。为什么代码在参数cls(RegExp)之前和之后使用两个空格(“”+cls+“”)为什么此//返回重新分类.test('button login');(ie,true)不是//返回重新分类.test('div.button login');(ie,true)读取。为什么代码在参数cls(RegExp(“”+cls+“”)前后使用两个空格@stackoverflow001,这只是为了确保表达式将匹配列表开头或结尾的类。即,
“someclass”
不会匹配
“someclass someotherclass”
,但
“someclass”
会匹配。
function hasClass( elem, cls ) {

    // var reClass = new RegExp(' login ');
    var reClass = new RegExp(' ' + cls + ' ');

    // return reClass.test(' button login ');  (ie, true)
    return reClass.test(' ' + elem.className + ' ');
}
console.log(hasClass(document.getElementById('test'), 'login'));