LINUX.ORG.RU

Как отнаследоваться от Function?

 


1

1

Хочется сделать «класс», инстансы которого будут функциями (с проперЯми).

В таких случаях обычно севетуют использовать фабрики, но мне хотелось бы именно прототипное наследование. Это вообще можно сделать? Чтобы работало instanceOf и т.п.

★★★★★

Чтобы работало instanceOf

это для баб. Вот Ъ:



Fun={
 create: function(f){f.__proto__=this; return f},
 foo: 1
}

hello=Fun.create(function(){alert("Hello!")})

hello()
alert(hello.foo)


//>>>> Hello!
//>>>> 1

BTW, как правило это нужно только для жеквери лалок. В серьезной разработке такое не требуется. Покажи юзкейс/задачу, для которой тебе это потребовалось. Как правило использовать ф-цию в качестве объекта не нужно. Может у тебя какой-то сильно специальный случай?

anonymous
()
Ответ на: комментарий от Vit

Через __proto__ слишком грязно.

О, да ты нубяра. Так бы сразу и сказал. Тогда тебе на жеквериточкару.

anonymous
()
Ответ на: комментарий от zz

Сенькс. Наверное будет проще апи переделать, чтобы такая магия не требовалась.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.