首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用嵌套命名空间函数javascript

调用嵌套命名空间函数javascript
EN

Stack Overflow用户
提问于 2016-02-17 03:00:58
回答 1查看 154关注 0票数 0
代码语言:javascript
复制
var namespace = {
    test: function() {
         //sample 1
         function nest(param) {
            console.log('a '+ param);
         }
         //sample 2
         this.nest = function(param) {
            console.log('b '+ param);
         }
    }
}

有人能解释如何调用和访问嵌套函数吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 03:31:08

您正在test范围内定义test函数,它只能在test中访问。this.nest函数是根据test函数的上下文(即namespace变量)定义的。这使得nest的版本可以在test函数之外访问,即使您在函数体中定义了它。

将您的代码更改为此,您将看到不同的控制台输出;

代码语言:javascript
复制
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');

这将产生以下产出;

代码语言:javascript
复制
a sample 1
b sample 2
b sample 3

一些人建议阅读范围和上下文;理解JavaScript中的范围和上下文

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35447079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档