我正在编写一个简单的AngularJS webapp,在我的导航服务中,我有一个菜单项列表:
class NavigationService {
constructor($location) {
this.$location = $location;
this.menu = [{
label: 'Overview',
key: 'overview',
children: [{
label: 'My Balances',
key: 'overview_balances',
click: () => {
this.$location.path('/balances');
}
}]
}, {
label: 'Wallets',
children: [{
label: 'Bitcoin',
key: 'wallets_bitcoin',
click: () => {
this.$location.path('/btc/balances');
}
}, {
label: 'Ethereum',
key: 'wallets_ethereum',
click: () => {
this.$location.path('/eth/balances');
}
}, {
label: 'Add...',
key: 'wallets_add',
click: () => {
this.$location.path('/wallets/add');
}
}]
}];
}
// some other code omitted
}
NavigationService.$inject = ['$location'];
export default NavigationService;
但是,当我在其中一个菜单项的click函数中放置断点时
key
属性未定义,即使存在标签和其他值:
我正在使用Webpack将ES6代码转换为枯燥的javascript,但正在检查生成的捆绑包。js仍然显示
钥匙
财产在创造时就存在。此外,虽然屏幕截图没有显示,但概述
钥匙
仍然存在--只是
钥匙
的s
children
未定义的对象数组。如果他们被移除,为什么他们会出现在检查员中?
我知道
钥匙
在JS中不是保留字,但在Angular中是否有不同的用法?我当然可以为值选择不同的名称,但我想知道发生了什么。如何在内存中跟踪该变量,并查看键消失的点?