js命名空间是什么(js命名空间使用方法)
javascript中es指的是什么
js中,不用 var 定义的变量都被视为全局变量。所以你的这个 es 应该是一个全局对象。相当于 C#中的命名空间。
我们在 js 中写
es.aa ="3";
等同于:
var es ={
aa:"3"
}
或者
es={};
es.aa ="3"
不知道你明白我的意思不。。
命名空间的理解
今天在看学习文档时候,看到这个词,虽然不是第一次看到这个词,但是我感觉好陌生,作为一个程序员,得知道这么常见的名词是什么意思, baidu,google找了一些文档将的都好抽象,看完了也还是不懂到底什么是命名空间,我想想要理解这个抽象的名词,还是得要找一些例子来帮助我理解
生活场景举例:
有两家人 一家姓王,一家姓李,两家都楼上楼下。 两家各有三个儿子。 碰巧两家都有个娃是10月1日出生的,所以都叫国庆。一天 王国庆 和李国庆在楼下玩。 这时人在楼上叫:国庆,你家的
电话响了。这下两个国庆就纳闷了,到底是叫那个国庆呢? 这个例子我们往前退一步。 这时如果有人叫 李国庆。那么 两人就知道是谁家的电话响了。
好了这就是命名空间的简单例子 。国庆这个词就是一个变量,很简洁,有一定的意义(国庆出生)。 但是在自己家叫国庆还可以知道是谁。除了家门别人一叫就乱套了。因为别人家也可能有叫国庆的。 但是加上 命名空间就可以区别了。 这里的王和李 就是命名空间 。 王-国庆,李-国庆 这两个就区别开了。
是为了解决命名冲突的问题。
比如: 在大型项目或者多人团队进行开发,对于类似的功能,在封装函数的时候难免会出现函数名相同的时候,那样就悲剧了,轻则前面的函数被覆盖,重则报各种错........js中引入命名空间就是为了解决这个问题。
命名空间,我们先顾名思义一下,也就是这个函数名字只属于这个空间。相当于在函数名前面加了个前缀,用于标识该名字的所属空间。
命名空间,我们先顾名思义一下,也就是这个函数名字只属于这个空间。相当于在函数名前面加了个前缀,用于标识该名字的所属空间。
typescript中的命名空间
命名空间和模块不要混用,不要在一个模块中使用命名空间,命名空间最好在一个全局的环境中使用
namespace中可以定义任意多的变量,这些变量只能在shape下可见,如果要在全局内可见的话就要使用export关键字,将其导出.
本质上是闭包,用来隔离作用域。
ts保留了这种方式,但是在我们平时的模块化开发中,也没必要使用命名空间。
如果在一个js中的namespace过于庞大,可以写多个js文件,他们共享同一个命名空间
互相引用的时候 /// reference path = "a.ts"
访问:
Shape.cricle()
起别名:import cricle = Shape.cricle()
雪地里跪求javascript关于this用法
个人的一点理解:
到setInterval调用run方法时,他的上下文已经变了,不再是Bullet,而是window,所以this.x是undefined;
改成直接alert(x)就行了,如果一定要用this的话,就在定义的时候,单独处理一下this,用一个变量转存一下。
function?Bullet(x)?{
????var?_this?=?this;
????this.x?=?x;
????this.run?=?function()?{
????????alert(_this.x);
????}
}
或者使用一下匿名函数,使run的上下文不被改变
setInterval(function(){
????bullet.run();
},?10);
js自己封装的库怎么命名
js文件按命名空间命名,那样操作就更加方便了, 只要都按此方式编写的库命名就可以了。