[英]How to call a function from an object, from within an other function's function of the same object in javascript?
我有一個對象,它簡化了一下:
function obj(arg){
return{
fct1: function(){
$(".output").append("called fct1 with arg: "+arg+"<br>");
},
fct2: function(){
$(".output").append("called fct2, which has an other function, which calls fct1<br>");
fct2a();
function fct2a(){
$(".output").append("doing something else, then calling fct1<br>");
this.fct1(); //not within scope
}
}
}
}
var myobj = obj("asd");
myobj.fct2();
我想從fct2a調用fct1,怎么辦? 小提琴
創建一個臨時變量並將this
對象分配給該變量並從中調用。 請在下面找到代碼
function obj(arg){
return{
var temp=this;
fct1: function(){
$(".output").append("called fct1 with arg: "+arg+"<br>");
},
fct2: function(){
$(".output").append("called fct2, which has an other function, which calls fct1<br>");
fct2a();
function fct2a(){
$(".output").append("doing something else, then calling fct1<br>");
temp.fct1();
}
}
}
}
var myobj = obj("asd");
myobj.fct2();
您還可以分別聲明fct1()
並在需要時調用它:
function obj(arg){
function innerFct1(arg) {
$(".output").append("called fct1 with arg: "+arg+"<br>");
}
return{
fct1: innerFct1,
fct2: function(){
$(".output").append("called fct2, which has an other function, which calls fct1<br>");
fct2a();
function fct2a(){
$(".output").append("doing something else, then calling fct1<br>");
innerFct1("arg2"); //not within scope
}
}
}
}
var myobj = obj("asd");
myobj.fct2();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.