我有两个JS对象,我想检查第一个对象是否有第二个对象的键做某些事情,否则抛出异常。什么是最好的方式来做到这一点?检查JavaScript对象的最佳方法拥有另一个JavaScript对象的所有关键字
function(obj1, obj2){
if(obj1.HasAllKeys(obj2)) {
//do something
}
else{
throw new Error(...);
}
};
例如,在自FirstObject下面的例子有所有SecondObject的关键它应该运行的代码:
FirstObject
{
a : '....',
b : '...',
c : '...',
d : '...'
}
SecondObject
{
b : '...',
d : '...'
}
但在下面的例子我想既然XXX犯规在FirstObject存在抛出一个异常:
FirstObject
{
a : '....',
b : '...',
c : '...',
d : '...'
}
SecondObject
{
b : '...',
XXX : '...'
}
任何原因使用'.call'而不是'obj.hasOwnProperty(key)'? – Barmar
@Barmar请参阅:请参阅:https://stackoverflow.com/questions/12017693/why-use-object-prototype-hasownproperty-callmyobj-prop-instead-of-myobj-hasow – andlrc
嗯,它似乎创建一个对象不从'对象'继承是一个灾难的食谱.... – Barmar