在Ember本地存储适配器的findQuery
功能中,我对包含"[Object RegExp]"
的{{3}}感到困惑。这是什么意思?
if (Object.prototype.toString.call(test) == '[object RegExp]') {
push = test.test(record[property]);
} else {
push = record[property] === test;
}
答案 0 :(得分:2)
[Object RegExp]
是regular expression object in Javascript的字符串表示形式(toString()
)。
该部分代码检查查询是否为正则表达式。如果是这样,它会在属性上运行表达式对象test()
,否则会进行严格的===
比较。
尝试在控制台中运行它:
var test = /a.*?nice regex/;
var string = "Is this a very nice regex?";
console.log( Object.prototype.toString.call(test) );
console.log( test.test(string) );