javascript模拟类及类继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript模拟类及类继承相关的知识,希望对你有一定的参考价值。

// 模拟Class
		function Rectangle(width, height){															
			this.height = height;			// 实例变量(public)
			this.getWidth = function(){ return width; } // 实例变量(private)
			this.setWidth = function(w){ width = w; }
			Rectangle.INSTANCE_COUNT++;
		}
		Rectangle.prototype.getSize = function(){ return { width:this.getWidth(), height:this.height } }	// 实例方法
		Rectangle.INSTANCE_COUNT = 0; 												// 类变量
		Rectangle.getInstanceCount = function(){ return Rectangle.INSTANCE_COUNT; } // 类方法

		var s = new Rectangle(15,15);
		s.setWidth(50);
		
		console.log(s, s.getSize(), Rectangle.getInstanceCount(), Rectangle.INSTANCE_COUNT);

// 继承
		function PositionRectangle(width, height, x, y){
			Rectangle.call(this, width, height); // 为this添加, width, height属性
			this.x = x;
			this.y = y;
			this.getPosition = function(){ return { x: this.x, y: this.y } }
		}

		PositionRectangle.prototype = new Rectangle(); // 只继承方法
		delete PositionRectangle.prototype.width;
		delete PositionRectangle.prototype.height;

		PositionRectangle.prototype.constructor = PositionRectangle; // 修正构造函数

		s = new PositionRectangle(15,15,10,10);
		console.log(s, s.getSize(), s.getPosition(), Rectangle.getInstanceCount(), Rectangle.INSTANCE_COUNT);


本文出自 “Doerthous” 博客,请务必保留此出处http://doerthous.blog.51cto.com/11762533/1858936

以上是关于javascript模拟类及类继承的主要内容,如果未能解决你的问题,请参考以下文章

6.17 面向对象思想及类的提纲

学习c++ 第四天 类 及类的继承--class和struct的区别--static成员

JavaScript面向对象

Python类成员及类成员修饰符

07.30《JavaScript》——模拟继承

javascript模拟实现继承,继承一次父类模板和原型对象