LINUX.ORG.RU

Обращение к свойству по имени

 


0

2

В JS, я на данный момент, чтобы вытащить имя свойства из объекта, делаю примерно так

ob={foo: 1, bar: 2}
for(i in ob){if(i==="foo") "It's ok"}
Но полноценного доступа по-прежнему нет, например, нельзя заменить строку «foo» на «anoter_foo», чтобы этот another_foo, по-прежнему указывал на 1. Да и сам по себе цикл, неоптимален, так как сажает производительность, наверное, хотя я в этом не смыслю. А не плохо было бы иметь что то вроде такого
ob={foo: 1, bar: 2}
ob.callByName("foo")="baz"
console.log(ob) // --> {baz: 1, bar: 2}
А еще лучше было бы, чтобы объект был доступен как строка, и можно было бы его просто пропарсить. Нет ли таких средств в JS?



Последнее исправление: anonimous (всего исправлений: 1)
Ответ на: комментарий от zarkone

Functions defined with the function statement and declared function parameters cannot be deleted either.

И, между прочем, в JS, обычно различают function declsration и function txpression. Что такое, по его мнению, function statment?

anonimous
() автор топика
Ответ на: комментарий от anonimous

в for i in мы имеем доступ к имени, какой-никакой через переменную i, а в случае («foo» in ob) — вообще никакого.

if ((i = 'foo') in ob) { console.log('We have access to ' + i + ' via i'); }

Не благодари.

Apple-ch ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.