JS 如何调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)
3个回答
展开全部
var obj = function() {
this.a = function(arg){alert(arg);}
this.b = function(arg){alert(arg+1);}
}
var fn = new obj;
fn.a('TEST');
this.a = function(arg){alert(arg);}
this.b = function(arg){alert(arg+1);}
}
var fn = new obj;
fn.a('TEST');
追问
function one(){
function a(){
alert("我很好!");
}
}
function two(){
//想在这里面调用函数one里面的a怎么弄?
}
追答
调用不了,你的a()放在one()里,对外面而言,a()是匿名函数,外面访问不到。
你可以改成:
function one(){
this.a = function(){
alert("我很好!");
}
}
这样,你就可以用我上面的方法来调用
也可以改成
function one(){
window.a = function(){
alert("我很好!");
}
}
这样,a()就是全局函数,你可以在任何地方直接调用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种方法:
实例化函数为对象
闭包返回内部值
解释为什么不能直接访问函数内的变量或内嵌函数
function foo(){
var var1=18;
function baz(){
console.log(var1);
}
}
baz(); // ReferenceError
foo.var1; // TypeError
foo.baz(); // TypeError
函数具有隔离内部值,即保护内部私有值或函数的能力。所不直接或间接访问。
方法一:实例化函数对象,略....。
方法二:闭包
function foo(){
var val1=18;
function baz(){
console.log(val1);
}
return { //返回值对象实质上是一个 我们模块的公有API
varl1:varl1,
baz:baz
}
}
var m=foo();
m.var1; // ok
m.baz(); // ok
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询