hasOwnProperty()方法是否区分大小写?是否还有其他不区分大小写的替代版本hasOwnProperty?
Koo*_*Inc 16
是的,它区分大小写(所以obj.hasOwnProperty('x') !== obj.hasOwnProperty('X'))您可以扩展Object原型(有些人称之为猴子修补):
Object.prototype.hasOwnPropertyCI = function(prop) {
return ( function(t) {
var ret = [];
for (var l in t){
if (t.hasOwnProperty(l)){
ret.push(l.toLowerCase());
}
}
return ret;
} )(this)
.indexOf(prop.toLowerCase()) > -1;
}
Run Code Online (Sandbox Code Playgroud)
更多功能:
Object.prototype.hasOwnPropertyCI = function(prop) {
return Object.keys(this)
.filter(function (v) {
return v.toLowerCase() === prop.toLowerCase();
}).length > 0;
};
Run Code Online (Sandbox Code Playgroud)
是的,它区分大小写,因为 JavaScript 是区分大小写的。
该语言没有内置的替代方案,但您可以推出自己的替代方案:
function hasOwnPropertyCaseInsensitive(obj, property) {
var props = [];
for (var i in obj) if (obj.hasOwnProperty(i)) props.push(i);
var prop;
while (prop = props.pop()) if (prop.toLowerCase() === property.toLowerCase()) return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7141 次 |
| 最近记录: |