Функции внутри объектов
Я знаю, что название неопределенное, но я не знал, что писать.
В javascript я знаю, как писать функции, которые будут вызываться вот так:
argument1.function(argument2);
Вот демонстрация скрипки: http://jsfiddle.net/rFXhf/
Теперь я задаюсь вопросом, могу ли я сделать:
argument1.argument2.function(argument3);//And even more!
Ответы
Ответ 1
вам нужно определить такие объекты, как это:
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);
Ответ 2
Современный подход 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
}
}
};