Например, этот код:
function stuff() {
this.onlyMethod = function () {
return something;
}
}
// some error is thrown
stuff().nonExistant();
Есть ли способ сделать что-то вроде PHP __call
как возврат изнутри объекта?
function stuff() {
this.onlyMethod = function () {
return something;
}
// "catcher" function
this.__call__ = function (name, params) {
alert(name + " can't be called.");
}
}
// would then raise the alert "nonExistant can't be called".
stuff().nonExistant();
Возможно, я объясню немного больше, что я делаю.
Объект содержит другой объект, который имеет методы, которые должны быть доступны непосредственно через этот объект. Но эти методы разные для каждого объекта, поэтому я не могу их просто маршрутизировать, поэтому мне нужно их динамически называть.
Я знаю, что могу просто сделать объект внутри него свойством основного объекта stuff.obj.existant()
, но мне просто интересно, могу ли я его избежать, поскольку основной объект - это своего рода оболочка, которая временно добавляет некоторые функции (и упрощает доступ к объекту в одно и то же время).