У меня есть объект в моем классе, как так:Javascript придает объект синтаксическому сахару?
this.options = {
a: 1,
b: 2,
...
};
Я просто задавался вопросом, есть ли способ «прикрепить» параметры объекта в текущей области видимости в JavaScript, так что я могу сослаться на a
и b
напрямую (вместо this.options.a
и this.options.b
). Что-то вроде:
attach(this.options);
var myVariable = a + 3; // 4
detach(this.options);
или
with(this.options, {
// code here
var myVariable = a + 3; // 4
});
В выше, attach
и with
иметь эффект принятия всех детей this.options
и прикрепление их к текущей области, чтобы они доступны через a
вместо this.options.a
. (Версия with
просто отключает this.options
, как только вы закончите, включив потенциально повреждающий объект в пределах этой области).
До тех пор, пока он работает в двигателе Spidermonkey/Mozilla, я не против, если он не переносится.
Я только упоминаю это из-за любопытства & лень: все вложенные имена становятся раздражающими, чтобы напечатать, и я знаю, что на языке R это возможно (на самом деле синтаксис в приведенных выше фрагментах почти точно вы должны написать в R, чтобы достичь этого).
Aha, 'с' есть * точно * какой был после. Я понимаю оговорки, которые приходят с его использованием (функции 'with' /' attach' в R приходят с аналогичными предупреждениями/рассматриваются с подобным опасением в сообществе R). ура! (на данный момент я решал его с помощью второго метода). –