Это то, чего я пытаюсь достичь.Вот существующий фрагмент кода -
function PartMetaData(dataElement) {
this.metaData = new MetaData(dataElement);
this.getDescription = function () {
return this.metaData.getElement("data-part-description");
};
this.getLength = function () {
return this.metaData.getElement("data-part-length");
};
this.getWidth = function () {
return this.metaData.getElement("data-part-width");
};
this.getHeight = function () {
return this.metaData.getElement("data-part-height");
};
this.getWeight = function () {
return this.metaData.getElement("data-part-weight");
};
}
Теперь посмотрим на связь между именем функции и именем атрибута - это очень похоже на повторяющийся код, которого можно избежать.Это то, что может быть достигнуто?Есть ли способ разрешить «любой» вызов функции для объекта и определить, что делать в зависимости от имени функции?
например, что-то вроде (синтаксис составлен, я не знаю, если что-то вродеэто существует в Javascript или любом другом языке в этом отношении)
function PartMetaData(dataElement){
this.metaData = new MetaData(dataElement);
this.get(name?) = function () {
return this.metaData.getElement("data-part-" + name.toLower());
}
, так что вызывающий может все еще вызвать
partMetaData.getDescription();
Есть идеи?Я знаю, что могу изменить подпись и сделать ее одной функцией, я просто хочу знать, можно ли сохранить подпись как есть с помощью некоторой магии JS (черный?). Спасибо!