`
sxpyrgz
  • 浏览: 70854 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVASCIRPT继承与命名空间

 
阅读更多
<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面向对象之Javascript 继承

    上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 、 JavaScript 面向对象的之私有成员和公开成员 与 Javascript 面向对象之重载,大家可以先看上面的再继续往下看。在JavaScript...

    JavaScript模式中文[pdf] 百度云

     命名空间模式  声明依赖关系  私有属性和方法  模块模式  沙箱模式  静态成员  对象常量  链模式  method()方法  小结  第6章 代码复用模式  传统与现代继承模式的比较  使用类式继承时的预期结果  ...

    Class:轻量级和优化的类定义在Javascript中变得简单。 仅5kb即可支持命名空间,类,继承和模块mixins

    Class.js是一种轻量级且经过优化的库,用于使用简洁的语法在Javascript中定义名称空间,类和继承。 定义一个命名空间 namespace("ui.controls.Box"); ui.controls.Box = function(){} 在命名空间中定义一个空的...

    编写可维护的JavaScript(中文)

    6.3.1 命名空间 6.3.2 模块 6.4 零全局变量 第7章 事件处理 7.1 典型用法 7.2 规则1:隔离应用逻辑 7.3 规则2:不要分发事件对象 第8章 避免“空比较” 8.1 检测原始值 8.2 检测引用值 8.2.1 检测函数 ...

    JavaScript权威指南(第6版)

    8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向...

    JavaScript模式 斯托扬·斯特凡洛夫 著

    命名空间模式 声明依赖关系 私有属性和方法 模块模式 沙箱模式 静态成员 对象常量 链模式 method()方法 小结 第6章 代码复用模式 传统与现代继承模式的比较 使用类式继承时的预期结果 类式继承模式#1——默认模式 ...

    JavaScript权威指南(第6版)(附源码)

    8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的...

    JavaScript权威指南(第6版)中文版pdf+源代码

     8.5 作为命名空间的函数181  8.6 闭包182  8.7 函数属性、方法和构造函数188  8.8 函数式编程194  第9章 类和模块201  9.1 类和原型202  9.2 类和构造函数203  9.3 JavaScript中Java式的类继承207  9.4 类...

    JavaScript权威指南(第6版)中文文字版

    8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和构造函数 203 9.3 javascript中java式的类继承 207 9.4 类的扩充 210...

    JavaScript权威指南(第6版)(中文版)

    8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向...

    JavaScript 权威指南(第四版).pdf

     8.5 作为命名空间的函数181  8.6 闭包182  8.7 函数属性、方法和构造函数188  8.8 函数式编程194  第9章 类和模块201  9.1 类和原型202  9.2 类和构造函数203  9.3 JavaScript中Java式的类继承207  9.4 类...

    编写可维护的javascript(英文)

    6.3.1 命名空间 6.3.2 模块 6.4 零全局变量 第7章 事件处理 7.1 典型用法 7.2 规则1:隔离应用逻辑 7.3 规则2:不要分发事件对象 第8章 避免“空比较” 8.1 检测原始值 8.2 检测引用值 8.2.1 检测函数 ...

    JavaScript权威指南(第6版)

    8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和构造函数 203 9.3 javascript中java式的类继承 207 9.4 类的扩充 210...

    OliveOil:基于 John John Resig 类实现的 nodeJS 命名空间处理程序、类加载器、对象创建和继承处理程序

    Olive 处理命名空间、类的创建和继承

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     1.2.4 为重用命名空间而进行规划   1.2.5 通过可重用的对象把事情简化   1.2.6 一定要自己动手写代码   1.3 JavaScript语法中常见的陷阱   1.3.1 区分大小写   1.3.2 单引号与双引号   1.3.3 ...

    JavaScript权威指南(第六版) 清晰-完整

    8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向...

    JavaScript权威指南(第6版) 中文版

    8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和构造函数 203 9.3 javascript中java式的类继承 207 9.4 类的扩充 210...

Global site tag (gtag.js) - Google Analytics