var namespace = {
test: function() {
//sample 1
function nest(param) {
console.log('a '+ param);
}
//sample 2
this.nest = function(param) {
console.log('b '+ param);
}
}
}有人能解释如何调用和访问嵌套函数吗?提前感谢!
发布于 2016-02-17 03:31:08
您正在test范围内定义test函数,它只能在test中访问。this.nest函数是根据test函数的上下文(即namespace变量)定义的。这使得nest的版本可以在test函数之外访问,即使您在函数体中定义了它。
将您的代码更改为此,您将看到不同的控制台输出;
var namespace = {
test: function() {
//sample 1
function nest(param) {
console.log('a '+ param);
}
nest('sample 1');
//sample 2
this.nest = function(param) {
console.log('b '+ param);
}
this.nest('sample 2');
}
}
namespace.test();
namespace.nest('sample 3');这将产生以下产出;
a sample 1
b sample 2
b sample 3一些人建议阅读范围和上下文;理解JavaScript中的范围和上下文
https://stackoverflow.com/questions/35447079
复制相似问题