<script type="text/javascript" src="jquery-1.11.1.min.js"></script> <body> <div id="contain1"> <input type = "button" name="test1" option="{required:true}"> </div> <div id="contain2"> <input type = "button" name="test2" option="{required:true,type:'number'}"> </div> </body> <script type="text/javascript"> <!-- //声明一个对象$.problemWo,添加一个b的静态属性和myclick的静态方法。 (function ($) { // 命名空间的绑定在$上 $.namespace = function() { var a=arguments, o=null, i, j, d; for (i=0; i<a.length; i=i+1) { d=a[i].split("."); if(!$.com){ o=$.com = function(){}; } else { o = $.com; } for (j=(d[0] == "com") ? 1 : 0; j<d.length; j=j+1) { o[d[j]]=o[d[j]] || {}; o=o[d[j]]; } } return o; }; //注册命名空间 $.namespace("com.frame"); //为类增加静态方法 $.com.frame.extendStatic = function (obj,obj1){ if(obj && obj1){ $.extend(obj,obj1); } } $.com.frame.extend= function (classObj,obj1){ var tempObj = function(){}; if(classObj && obj1){ if(typeof(classObj) == "function" && typeof(obj1) == "object"){ $.extend(classObj.prototype,obj1); tempObj.prototype = new classObj(); }else{ console.log("请检查参数!"); } }else if(classObj){ if(typeof(classObj) == "function"){ tempObj.prototype = new classObj(); } }else{ console.log("请检查参数!"); } return tempObj; } $.com.frame.Base = function () { this.x = "123"; this.init(); }; $.com.frame.Base.prototype = { init:function(){ console.log("init"); }, bindEvent:function(){ }, validate:function(){ } }; })(jQuery); $.namespace("com.frame.test"); $.com.frame.test.ProblemWo = $.com.frame.extend($.com.frame.Base ); $.com.frame.test.ProblemWo1 = $.com.frame.extend($.com.frame.Base, { temp:"2222", init:function(){ this.c = "2222222"; this.x = "b2bb"; console.log(this.temp); this.temp = "12211"; console.log(this.c); console.log(this.b); } }); //声明一个对象$.problemWo,添加一个b的静态属性和myclick的静态方法。 (function ($) { $.com.frame.extendStatic($.com.frame.test.ProblemWo, { staticT: 5 ,staticTest: function () { } } ); })(jQuery); var problemWo = new $.com.frame.test.ProblemWo(); var problemWo1 = new $.com.frame.test.ProblemWo1(); alert(problemWo1.x); alert(problemWo.x); $("#contain1 input[option]").each(function(){ alert(this.name); var optionObj = this.getAttribute("option"); }) </script>
相关推荐
然而,在某些场景下,例如与JavaScript或简单的数据解析应用集成时,我们可能希望去掉这些命名空间以简化处理。 要实现这个目标,我们可以自定义一个XML序列化器,继承自`System.Xml.Serialization.XmlSerializer`...
然而,JavaScript不同于其他编程语言,如Java或C#,它没有内置的命名空间概念,这使得在处理大型项目时可能会遇到命名冲突的问题。在Java或C#中,命名空间用于将代码组织到逻辑分组中,允许相同的名称在不同的命名...
1. **模块化与命名空间** 内容中首先定义了一个名为`pageJs`的对象,它包含`urls`数组和`run`函数。这实际上是一种模块化实践,因为`pageJs`可以看作是一个模块,它封装了相关的功能代码。通过模块化的组织方式,...
EXT dojochinaExt命名空间是EXT框架的一个特定扩展,主要针对中国开发者设计,它提供了丰富的组件和功能,便于在JavaScript应用中构建复杂的用户界面。EXT是一个强大的前端开发框架,尤其在创建数据驱动的Web应用...
命名空间模式 声明依赖关系 私有属性和方法 模块模式 沙箱模式 静态成员 对象常量 链模式 method()方法 小结 第6章 代码复用模式 传统与现代继承模式的比较 使用类式继承时的预期结果 ...
上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 、 JavaScript 面向对象的之私有成员和公开成员 与 Javascript 面向对象之重载,大家可以先看上面的再继续往下看。在JavaScript...
上述代码展示了如何通过简单的JavaScript代码来模拟命名空间。 在JavaScript中实现继承,通常是通过原型链和构造函数来完成的。可以使用`Object.create()`方法来创建一个新对象,使新对象的`__proto__`指向另一个...
第四章主要讨论原型和对象,这是理解JavaScript继承机制的关键。通过解释原型链和构造函数,作者展示了如何利用这些特性来实现面向对象编程。他还提到了一些最佳实践,如使用Object.create()来创建新对象,以及避免...
5. **模块化和命名空间**:讲解如何组织和管理代码,通过模块化和命名空间来避免变量冲突和提高代码的可维护性。 6. **JavaScript的面向对象特性发展**:可能涵盖了从早期JavaScript版本到ES6中类语法的引入等语言...
总的来说,JavaScript的面向对象编程涉及了类与原型的比较、继承机制、封装、多态、命名空间等核心概念。理解并熟练运用这些概念是成为专业前端开发者的关键步骤。通过学习和实践,开发者可以创建出高效、易于维护的...
5. **代码组织与模块化**:书中介绍了如何通过模块化来提高代码可维护性和复用性,包括立即执行函数表达式(IIFE)、命名空间和AMD/CMD模块加载器。 6. **JavaScript性能分析**:Zakas教授了如何使用开发者工具进行...
Class.js是一种轻量级且经过优化的库,用于使用简洁的语法在Javascript中定义名称空间,类和继承。 定义一个命名空间 namespace("ui.controls.Box"); ui.controls.Box = function(){} 在命名空间中定义一个空的...
5. **命名空间**:为了避免与其他代码冲突,使用命名空间或立即执行函数表达式(IIFE)封装插件。 通过以上分析,我们可以看到编写JavaScript插件是一个涉及JavaScript基础、面向对象编程、原型链、性能优化等多个...
- **自执行匿名函数**:立即执行的匿名函数,常用于模块模式以避免污染全局命名空间。 #### 对象 对象是面向对象编程的关键概念,JavaScript中的一切都可以视为对象。这一章介绍了如何使用对象来组织代码: - **...
模块系统(import和export)则让JavaScript代码组织更加规范,支持按需加载和命名空间。 九、错误处理 了解如何捕获和处理JavaScript运行时错误,如try...catch语句,是编写健壮代码的关键。 十、性能优化 理解V8...
我们介绍了JavaScript对象作为词典的概念、函数的重要性、构造函数与原型、闭包以及如何模拟私有属性和命名空间。这些概念和技术对于任何希望使用现代Web开发技术构建复杂应用的开发者来说都是必不可少的。随着Web...
书中虽然没有直接介绍ES6的import和export,但提出了使用IIFE(立即执行的函数表达式)和命名空间来实现模块化的早期策略。 7. **正则表达式**:JavaScript的正则表达式是进行字符串处理的强大工具。书中介绍了正则...
7. **命名空间封装**:虽然JavaScript没有真正的命名空间,但可以模拟实现,比如使用对象来模拟命名空间,减少全局作用域中的变量数量,避免命名冲突。 8. **模块系统(CommonJS, ES6模块)**:在Node.js环境中,...
此外,书中的错误处理机制、作用域和命名空间的解析也对理解JavaScript的执行环境至关重要。 接着,转向《JavaScript高级程序设计》。这本书更注重实践,它不仅讲解了JavaScript的基础知识,还深入探讨了设计模式、...
这些功能可以帮助组织代码,避免全局命名空间污染。 8. **正则表达式** 正则表达式在JavaScript中用于字符串匹配和替换,书中会介绍如何编写和使用正则表达式,以及相关的全局变量和方法。 9. **错误处理** ...