Javascript 重写Object.prototype.get以防止大型应用程序中出现空检查问题
我意识到JS社区并不推荐这样做,但我认为有一个很好的用例可以覆盖Object.prototype,这样访问未定义对象的属性就会返回未定义的,而不是抛出应用程序崩溃错误 背景资料很少:Javascript 重写Object.prototype.get以防止大型应用程序中出现空检查问题,javascript,angular,ionic2,undefined,Javascript,Angular,Ionic2,Undefined,我意识到JS社区并不推荐这样做,但我认为有一个很好的用例可以覆盖Object.prototype,这样访问未定义对象的属性就会返回未定义的,而不是抛出应用程序崩溃错误 背景资料很少: 使用大型应用程序(大约20万行代码) 应用程序是极其可配置的,有大量的选项-没有办法测试每一种可能性 Angular 2/Ionic 2项目 基本上,我希望使以下代码控制台记录“未定义”,而不是生成错误: 伪代码: Object.defineProperty(Object.prototype, Object.pro
Object.defineProperty(Object.prototype, Object.prototype.get, (val) => {
try {
console.log(val);
} catch (e) {
console.log('Attempted to access undefined property');
}
});
const obj = {
a: 'b'
};
console.log(obj.a.b.c); // should log undefined but actually generates an app freezing issue
问题:
我怎样才能做到这一点?有没有其他方法可以在不添加太多代码的情况下防止整个应用程序中出现空检查错误?是否有一个通用的修复程序,使这些空检查错误不会使Angular/Ionic应用程序崩溃