Как использовать вложенные функции в объектах

Предположим, вы используете следующую структуру:

var Args = new Object();
Args.Age = '10';
Args.Weight = '10';

Args.GetAge = function() {
    return 'I am ' + Age + ' years old';
}

Args.GetWeight = function() {
    return 'I weigh ' + Weight + ' pounds';
}

Это прекрасно работает. Но можно ли использовать общий тип, чтобы не создавать функцию для каждой переменной? Например, что-то вроде следующего:

Args.GetValue = function(i) {
    return this.i;
}

Кажется, это не работает, но я даже не знаю, возможно ли это. Кто-нибудь знает ответ на эту загадку?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
289
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете получить доступ к свойствам через обозначение []:

alert(Args["Age"]);

И, как указано ниже, вы также можете просто прочитать значение через .Age или .Weight:

alert(Args.Age);

Это казалось очевидным, поэтому я подумал, что вы ищете что-то еще.

Кстати, вы можете упростить создание объекта, чтобы:

var args = { Age : '10', Weight : '10' };

Я использую объект для хранения аргументов запуска сценария, и мне нужно преобразовать их в правильный формат. У меня есть функция, которая извлекает аргумент, но вместо этого я хотел вложить функцию в объект.

Dscoduc 10.01.2009 02:07

Было бы лучше объявить функцию для Args вместо объекта? Таким образом, я мог просто использовать синтаксис var myArgs = new Args (). Конечно, функция getValue изменится на this.getValue = function (name) {return this [name]; }

Dscoduc 10.01.2009 02:31

Вот как работает Microsoft AJAX; есть функции для каждого сеттера и получателя. Они начинаются с _set и _get. В прототипе объявлена ​​переменная уровня класса, а методы получения и установки возвращают и устанавливают эту переменную.

Robert C. Barth 11.01.2009 07:41
var Args = {};
Args.Age = '10';
Args.Weight = '10';

alert(Args.Age);
alert(Args.Weight);

Они доступны как для чтения, так и для записи, вам не нужны сеттеры / геттеры.

Другие вопросы по теме