论坛首页 Web前端技术论坛

JavaScript的面向对象的类的写法

浏览 3605 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-26  
写了一个StringBuffer的类:可以实现简单的功能
var sb = new StringBuffer("a","b");
sb.append("c");
sb.append("d");
alert(sb.toString());


类的定义:
var Class = {
	create: function() {
		return function() {
			this.initialize.apply(this, arguments);
		}
	}
}


var StringBuffer = Class.create();


StringBuffer.prototype = {
	initialize:function(){
		this._array = new Array;
		for(var i=0;i < arguments.length;i++){
			this._array.push(arguments[i]);
		}
	}
	,
	
	append:function(){
		for(var i=0;i < arguments.length;i++){
			this._array.push(arguments[i]);
		}
	}
	,
	
	toString:function(){
		return this._array.join("");
	}
};



在写的过程中遇到一个问题:
如果参数直接传arguments,答应出的是[object Object],但是如果用apply之后就没问题,估计arguments是个相对于本对象的一个函数,不能当参数传递。下面这段代码就是例子。
function a1(){
	var _array = new Array;
	_array.push(1);
	_array.push(2);
	alert(arguments);
	a2();
}

function a2(){
	alert(arguments[0]);
}
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics