#javascript #function
Вопрос:
Как я могу вызвать функцию «a» из «a.v» без прямой ссылки «a()»
function a(){
alert("1");
this.v=function(){alert("hi")};
}
Комментарии:
1. Как вы вызываете функцию, не вызывая ее?
Ответ №1:
Один из способов, которым я могу придумать, чтобы сделать это, не повторяя a
:
function a(){
let indirect = arguments.callee;
alert("1");
indirect.v=function(){ indirect(); };
}
a();
a.v();
Но это не работает в строгом режиме, и вы должны позвонить a
, прежде чем звонить a.v
.
Вы также могли бы сделать:
function a(){
alert('1');
this.v = () => this();
}
a.v = a;
a.v();
Таким образом, вы не звоните a()
, и он также работает в строгом режиме.
Ответ №2:
Установите его v
свойство вне функции:
function a() {
alert("1");
}
a.v = function() {
a()
alert("hi")
};
a.v()