Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2014, 13:00
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Как получить свойсвто объекта?
Здравствуйте, подскажите пожалуйста.
Есть строка кода:
Test.a: 'Hello' || {Name: 'Vasya'}

Вопрос: как мне при необходимости получить один из вариантов, к примеру:
если я хочу получить тексто привет, то я могу написать:
Test.a // Hello

а вот как мне получить Вася???
Test.a.Name // undefined

Какие есть варианты? Как вариант можно изменить первоначальную запись, то есть эту Test.a: 'Hello' || {Name: 'Vasya'} только как?
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2014, 13:29
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 2,924

Armen, в Вашем случае, {Name: 'Vasya'} тут не несёт смысла, ибо "Hello" - это true, следовательно объект записаться просто не может.

А что мешает просто сделать объектом?
Test.a = {
    Name: 'Vasya',
    Text: 'Hello'
};
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2014, 13:43
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Сообщение от Ruslan_xDD Посмотреть сообщение
Armen, в Вашем случае, {Name: 'Vasya'} тут не несёт смысла, ибо "Hello" - это true, следовательно объект записаться просто не может.

А что мешает просто сделать объектом?
Test.a = {
    Name: 'Vasya',
    Text: 'Hello'
};
Ничего не мешает, но мне очень упростит код, если одно значение будет по-умолчанию, то есть, если свойство Name есть, то я получаю Васю, а в противном случае, получаю значение по умолчанию, то есть ПРИВЕТ
Ответить с цитированием
  #4 (permalink)  
Старый 18.10.2014, 22:55
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Armen,
В принципе, можно попробовать вот так
<html>
<head>
</head>
    <body>
 
<script>


Test={
a: new String("Hello")
}
Test.a.Name="Vasya"

//  { '0': 'H', '1': 'e', '2': 'l', '3': 'l', '4': 'o', Name: 'Vasya' } // реально представляет из себя вот такой объект

console.log(Test.a)
console.log(Test.a.Name)
//  Hello
//  Vasya

console.log(Test.a.slice(-5), Test.a.length) // Hello 5
alert(Test.a)
document.write(Test.a)

</script>
    </body>
</html>


Как видно, при употреблении в строковом контексте, приводится к нормальной строке. Заметил только,что в дебильном V8 в console.log не приводится. В любом случае, можно привести явно, если чо.

Последний раз редактировалось terminator-101, 18.10.2014 в 23:03.
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2014, 05:45
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,435

Я не очень понял суть задачи, но, возможно, нужны геттеры?

Последний раз редактировалось Erolast, 19.10.2014 в 05:49.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение переменной/свойства объекта, зная ее имя? Sinist3r Общие вопросы Javascript 4 19.09.2013 19:39
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 13:25
Как получить raw data с image? lyapharov Общие вопросы Javascript 2 06.04.2011 23:20
Как получить название композиции из Windows Mepia Plyaer alx99 Javascript под браузер 1 18.02.2011 15:21
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 22:32