javascript 自定義Array對象

function SelfArray(){
	var sArray={};
	sArray.length=0;
	sArray.data={};
	
	Object.defineProperty(sArray.data,"length",{
		configurable: false,
		//writable: false,
		enumerable: false,
		get: function(){
			return sArray.length;
		}
	});
	
	Object.defineProperty(sArray.data,"push",{
		configurable: false,
		writable: false,
		enumerable: false,
		value: function(val){
			sArray.data[sArray.length]=val;
			sArray.length=sArray.length+1;
		}
	});
	
	Object.defineProperty(sArray.data,"size",{
		configurable: false,
		writable: false,
		enumerable: false,
		value: function(){
			return sArray.length;
		}
	});
	return sArray.data;
}

//測試用例
window.SelfArray=SelfArray;
window["[]"]=SelfArray() ;
var sArr=SelfArray();  // 或者 window["[]"],因[]已被javascript規範使用,不然我們也可以自己寫成var sArr=[];
sArr.length;//輸出 0
sArr.push("姓名");
sArr.push("年齡");
sArr.push("出生日期");
//以下兩個循環輸出結果一樣
for(var k in sArr){
  alert(k+"="+sArr[k]);
} 
for(var k=0; k<sArr.length;k++){
  alert(k+"="+sArr[k]);
}
sArr.length;//輸出 3
sArr.size();//輸出 3



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章