Я немного нуб, когда дело доходит до этого. Я использую JSON для определения класса/объекта с именем product
, и я не уверен, как передать аргументы для доступа к определенной части этого объекта. Простите меня за то, что я не смог объяснить это лучше. Надеюсь, мой пример кода поможет:Как получить доступ к определенному объекту в javascript?
var product = {
p14lb: {
one: 10.00,
two: 20.00,
three: 30.00,
four: 40.00,
five: 50.00,
six: 60.00,
colorCharge: 2.00
},
p20lb: {
one: 20.00,
two: 30.00,
three: 40.00,
four: 50.00,
five: 60.00,
six: 70.00,
colorCharge: 1.00
},
getPrice: function (productQty,colorQty) {
// I can get the values like this
return this.p20lb.one * productQty;
// but i'd like to be able to pass in the value of what object I want to access
// so instead of hard coding p20lb.one, 'p20lb' would be an argument I could pass
// to getPrice, and 'one' would also be an argument
}
};
Вот как я к нему обращаюсь в настоящее время, отлично работает.
var myProduct = product.getPrice(144,2);
Как я уже сказал в комментарии в приведенном выше примере кода, я хотел бы не жесткий код p20lb.one «p20lb» был бы аргумент, который я мог бы перейти к getPrice, и «один» также будет аргументом. Так что, возможно, что-то вроде этого:
getPrice: function (productQty,colorQty,productName,tier) {
return this.productName.tier * productQty;
}
var myProduct = product.getPrice(144,2,'14lb','two');
Но это не идти, я не получаю undefined
независимо от того, что я делаю. Я понимаю, что это так. Это то, что я пытаюсь сделать возможным? Если да, можете ли вы указать мне в правильном направлении? Благодаря!
КСТАТИ: Что вы имеете в виду, называется "литерал объекта", а не в формате JSON. JSON - это [очень строгий строковый формат] (http://json.org/), который может быть понят JavaScript 'eval()'. Ваш образец действителен JavaScript, но определенно не совместим с JSON. – Tomalak
+1 Прохладный, спасибо за это! Я использовал это как ссылку (см. # 2) http://www.phpied.com/3-ways-to-define-a-javascript-class/ – jyoseph
А теперь, когда я прочитал комментарии к статье, связанной с ней , кто-то также указал это автору. Хорошо знать! – jyoseph