سؤال

في جافا سكريبت، لدي كائن:

obj = { one: "foo", two: "bar" };

والآن، أريد القيام بذلك

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

ولكن بطبيعة الحال فإنه لا يعمل. ما هي الطريقة الصحيحة في وضع مرجع لهذا الكائن حيوي؟

هل كانت مفيدة؟

المحلول

والجواب باختصار: obj[a]

والجواب طويل: obj.field هو مجرد اختصار لobj["field"]، لحالة خاصة حيث المفتاح هو سلسلة متواصلة بدون مسافات، النقاط، أو أشياء سيئة أخرى. في سؤالك، هو مفتاح ليست ثابتة، وذلك ببساطة استخدم بناء الجملة كاملة.

نصائح أخرى

ومثل هذا:

obj[a]

وكملاحظة جانبية، وترد المتغيرات العالمية إلى كائن "نافذة"، حتى تتمكن من القيام

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

وهذا تنبيه "مرحبا، مرحبا، مرحبا"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top