Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript属性错误处理_Javascript_Json_Properties_Error Handling - Fatal编程技术网

JavaScript属性错误处理

JavaScript属性错误处理,javascript,json,properties,error-handling,Javascript,Json,Properties,Error Handling,我正在寻找一种在访问对象本身中缺少的属性时捕获异常的方法 我要找的东西是: var objOne = { objTwo: {}, objThree: {}, fallback: function(missingProperty) { alert('obj did not contain property ' + missingProperty); } } 像objOne.objFour这样的调用应该链接到objOne.fallback(

我正在寻找一种在访问对象本身中缺少的属性时捕获异常的方法

我要找的东西是:

var objOne = 
{
    objTwo: {},
    objThree: {},
    fallback: function(missingProperty)
    {
        alert('obj did not contain property ' + missingProperty);
    }
}
objOne.objFour
这样的调用应该链接到
objOne.fallback('objFour')

有什么好方法可以处理这个问题吗?

访问未定义的属性不会触发任何异常,您可以使用与
|
相同的行为:

function callBack (missingProperty) {
  alert('obj did not contain property ' + missingProperty)
}
objOne[attr] || callBack(attr);

objOne
不包含
attr
时,这将触发
回调
函数。我的想法是修改customObject原型的构造函数(例如objthre)并检查设置值等

或者定义通过创建对象激发的自定义事件:

我希望我正确地理解了你,这就是你正在寻找的。其他可能性是:

var objThree = function(a, b){
var parent = this;
this.valA = a;
this.valB = b;
this.checkForValues = function(){
   if (parent.valA == null || parent.valB == null) return false;
   return true;
}

问候语

您需要编写一个自定义getter方法,而不是直接引用属性。没有任何线索-感谢您的好主意,请将其提升到0;)