处理 JavaScript 对象中的连字符

Dealing with Hyphens in a JavaScript Object

我正在为 .NET MVC5 应用程序使用开源网格库 (Nofactors-MVC-Grid),无论出于何种原因,渲染器将 C# 中的 snake_case 变量名转换为 [= 中的连字符17=].

document.addEventListener('rowclick', function (e) {
    //Value in C# will be some_id
    var some_id = e.detail.data.some-id; //debugger displays this
});

显然,这对 JS 来说是一个糟糕的命名约定,但我很好奇是否有另一种方法来捕获这个变量,而不必在后端重构我的命名约定。

您还可以使用方括号 getter ( [ ] ) 访问对象 属性。
在您的情况下,这可用于访问包含连字符的对象 属性。

document.addEventListener('rowclick', function (e) {
    //Value in C# will be some_id
    var some_id = e.detail.data['some-id']; //debugger displays this
});

您也可以使用相同的 getter 来获得动态 属性

document.addEventListener('rowclick', function (e) {
    //Value in C# will be some_id
    let key = 'some-id';
    var some_id = e.detail.data[key]; //debugger displays this
});