我有兩個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