Rozważmy następujący kod: powyżejzdefiniować funkcję z zagnieżdżonych funkcji i domyślnej funkcji
function test() {
this.foo = function() {
console.log('foo');
return;
}
this.bar = function() {
console.log('bar');
return;
}
}
var action = new test();
action.foo(); //prints 'foo'
Kod działa poprawnie w przypadku muszę zadzwonić akcję foo
lub bar
wewnątrz działania test
. Jednak sama akcja powinna być funkcją wywoływalną. Myślałem, że byłoby super, gdyby JavaScript pozwolił mi stworzyć coś podobnego (patrz poniżej), ale, zgodnie z oczekiwaniami, mówi:
TypeError: action is not a function
function test() {
this.foo = function() {
console.log('foo');
return;
}
this.bar = function() {
console.log('bar');
return;
}
return function() {
console.log('default');
return;
}();
}
var action= new test();
action(); //prints 'default'
action.bar(); //printf 'bar'
Czy to możliwe, aby osiągnąć coś podobnego?
mogą one funkcję prototypowania być zagnieżdżonym? Powiedzmy, że 'test.foo' jest tak naprawdę funkcją z możliwymi metodami, takimi jak' test.foo.buzz' lub 'test.foo.bar'. – lolbas