Мне нужна функция, которая получает конструктор как первый и (переменное число) дополнительных аргументов в качестве следующих аргументов и строит из него объект.javascript: parameterize constructor and arguments
Есть ли способ javascript для этого? Я создал следующее, но я ни в коем случае не эксперт по javascript и не уверен, что он эквивалентен тому, что я хочу.
function make_object() {
var args = Array.prototype.slice.call(arguments);
var f = args.shift();
var obj = Object.create(f.prototype);
f.apply(obj, args);
return obj;
}
Это правильное решение? Есть что-то более простое?
Вы проверили его? Делает ли он то, что вы ожидаете от этого, или делает что-то неожиданное? – Mathletics
@Mathletics: Да, у меня есть простой тестовый диск, и я не заметил никакой разницы. Тем не менее, я бы хотел, чтобы эквивалентность была более формальной. –
Ну, использование 'new', вероятно, будет достаточно простым -' new Foo ('arg') 'vs.' make_object (Foo, 'arg') '. Из любопытства: зачем вам это абстрагироваться так? –