Javascript: метод внутри литерала объекта без ключа / имени [дубликат]

Это исправление Nuget помогло мне:

https://github.com/NuGet/Home/issues/974#issuecomment-124774650

12
задан Taha Paksu 30 April 2012 в 12:19
поделиться

2 ответа

вам нужно определить такие объекты:

var argument1 = {
    myvar : "12",
    mymethod : function(test) { return something; }
}

, затем вызовите метод mymethod:

argument1.mymethod(parameter);

или более глубокую версию:

var argument1 = {
    argument2 : {
       mymethod : function(test) { return something; }
    }
} 

, то:

argument1.argument2.mymethod(parameter);
18
ответ дан Taha Paksu 17 August 2018 в 15:37
поделиться
  • 1
    Это будет работать, но я хочу версию, подобную jsfiddle, где вы просто пишете: var a; var b; a.pow (b); например – user1365010 30 April 2012 в 05:12
  • 2
    у вас есть определенный тип аргументов или вы хотите, чтобы он работал над чем-либо? – Taha Paksu 30 April 2012 в 05:14
  • 3
    Хорошо, теперь я понял. Я не думаю, что вы можете это сделать, потому что & quot; & quot; Коннектор предназначен для объектов, получающих его вспомогательные функции / переменные. – Taha Paksu 30 April 2012 в 05:23

Современный подход ES6

Вам больше не нужно указывать ключевое слово function при определении функций внутри объектов:

var myObj = {
  myMethod(params) {
    // ...do something here
  }
  myOtherMethod(params) {
    // ...do something here
  }
  nestedObj: {
    myNestedMethod(params) {
      // ...do somethinghere
    }
  }
};

Вышеупомянутое будет таким же, как и ниже, за исключением ниже версия повторяется и многословна.

var myObj = {
  myMethod: function myMethod(params) {
    // ...do something here
  }
  myOtherMethod: function myOtherMethod(params) {
    // ...do something here
  }
  nestedObj: {
    myNestedMethod: function myNestedMethod(params) {
      // ...do somethinghere
    }
  }
};
3
ответ дан Govind Rai 17 August 2018 в 15:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: