如何实现javascript js 类命名空间的写法
转载 猫猫小屋http://www.maomao365.com/?p=823
在C#中有namespace概念,java中有package的概念,有了这些概念之后,在系统的运行时,每一个方法就会拥有唯一的访问路径
namsepace.class.object,这样就可以避免由于object重名所导致的问题.
由于javascript是一种解释型语言,在javascript中,如果定义两个同名函数或者变量,系统会用最后一个函数或变量来替换前一个函数和变量,
如果是一个的单人开发的系统,则不会产生很多异常,因为可以人为的控制这些命名的唯一,如果是大型多人协同开发系统,则可能产生很多异常,增加程序的调试难度。
举例说明命名空间必要性
例如我们编写一个页面 引入jquery框架,然后我们在页面里面自定义一个$函数,那么$ 函数可能会失效,或者产生莫名其妙的现象
命名空间使用
< input type="button" value="命名空间使用" onclick="(new namespace()).$();"/>
< script type="text/javascript">
function namespace(){
this.$=function(){
alert(‘命名空间使用!’);
}
}
< /script>
这种写法,其实就是在namespace下定义了一个$
简化每次都 new namespace
< input type="button" value="命名空间使用" onclick="t.$();"/>
< script type="text/javascript">
(function namespace(){
this.$=function(){
alert(‘命名空间使用!’);
}
window.t ={};
window.t=this;
})();
< /script>
进阶篇
在一个命名空间里面可以像 C# java一样包含很多变量和方法
< input type="button" value="命名空间使用" onclick="t.$();"/>
< input type="button" value="命名空间简化调用" onclick="method3();"/>
< input type="button" value="命名空间method2使用" onclick="t.method2();"/>
< input type="button" value="命名空间method3使用" onclick="t.method3();"/>
< input type="button" value="命名空间a变量赋值使用" onclick="t.a=999;"/>
< script type="text/javascript">
(function namespace(){
this.$=function(){
alert(‘命名空间使用!’);
}
this.method2=function(){
alert(“this method 2!”);
}
this.a=”888″;
this.method3=function(){
alert(“命名空间内部变量:a”+a);
}
window.t ={};
window.t=this;
window.t.method3=method3;
})();
< /script>
如何实现javascript js 类命名空间的写法的更多相关文章
- JavaScript 定义类的最佳写法——完整支持面向对象(封装、继承、多态),兼容所有浏览器,支持用JSDuck生成文档
作者: zyl910 [TOC] 一.缘由 由于在ES6之前,JavaScript中没有定义类(class)语法.导致大家用各种五花八门的办法来定义类,代码风格不统一.而且对于模拟面向对象的三大支柱& ...
- JS类的封装及实现代码
js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...
- JavaScript学习总结(十四)——JavaScript编写类的扩展方法
在JavaScript中可以使用类的prototype属性来扩展类的属性和方法,在实际开发当中,当JavaScript内置的那些类所提供的动态 ...
- js类的笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 自己手写的自动完成js类
在web开发中,为了提高用户体验,会经常用到输入框的自动完成功能,不仅帮助用户进行快速输入,最重要的是帮助那些“记不全要输入什么”的用户进行选择.这个功能有很多插件已经实现了,为了适应项目的特殊需求, ...
- Atitit.javascript 实现类的方式原理大总结
Atitit.javascript 实现类的方式原理大总结 1. 实现类的式::构造方法方式:原型方式:构造方法+原型的混合方式 1 2. 原型方式(function mode)经典式..实现属性推荐 ...
- (转载)Javascript定义类(class)的三种方法
因在公司内部培训中有讲解到JS类的概念,不甚明白,于是进行了google找到了相关的介绍说明,现将其摘抄下来,以作记录. 在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对 ...
- 关于JavaScript的namespace命名空间
写C或者JAVA习惯的人写JavaScript时可能会发现JavaScript并没有命名空间这一概念,当然如果没有接触过命名空间的程序猿(比如写js,PHP,Python)也可能对命名空间不关注或者不 ...
- javascript 定义类(转载)
Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门 ...
随机推荐
- 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 调度器简介,以及Linux的调度策略
进程是操作系统虚拟出来的概念,用来组织计算机中的任务.但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失.不过,进程的生命都得到了操作系统内核的关照.就 ...
- 分析windows .net程序dump文件的两种方式
1.WinDbg 按照自己系统版本下载对应windbg(https://debugging.wellisolutions.de/windbg-versions/),win10版本自动下载文件符号,体验 ...
- 【NET CORE微服务一条龙应用】第三章 认证授权与动态权限配置
介绍 系列目录:[NET CORE微服务一条龙应用]开始篇与目录 在微服务的应用中,统一的认证授权是必不可少的组件,本文将介绍微服务中网关和子服务如何使用统一的权限认证 主要介绍内容为: 1.子服务如 ...
- 从a文件判断是否删除b文件中的行(sed示例)
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html test.xml文件很大,内容结构如下: <?xml v ...
- python装饰器3:进阶
装饰器1:函数装饰器 装饰器2:类装饰器 装饰器3:进阶 函数装饰器装饰方法 函数装饰器装饰普通函数已经很容易理解了: @decorator def func():... #等价于 def func( ...
- SpringBoot系列——快速构建项目
前言 springboot官方参考指南:https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/ Spri ...
- 【转载】网站遭遇DDoS攻击怎么办
在网站运维过程中,有些人的网站遭遇过DDoS攻击,DDos攻击又叫做分布式拒绝服务攻击.DDos攻击将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力 ...
- element-ui el-input只显示下划线
只需要增加样式 .el-input__inner { width: 220px; border-top-width: 0px; border-left-width: 0px; border-right ...
- 在 UWP 中实现 Expander 控件
WPF 中的 Expander 控件在 Windows 10 SDK 中并不提供,本文主要说明,如何在 UWP 中创建这样一个控件.其效果如下图: 首先,分析该控件需要的一些特性,它应该至少包括如下三 ...