function WString() { this.value = []; // åå§å wString对象 æ¶ï¼éé¢å®ä¹ ä¸ä¸ªç©ºæ°ç»ï¼å°æ¥ç¨æ¥è£ æ°æ®çå®¹å¨ this.length = 0; //å 为æ¯ç©ºæ°ç»ï¼æä»¥ç°å¨çé¿åº¦æ¯0 /** * pushï¼ï¼æ¹æ³ç¨äºå¨æ°ç»çæ«ç«¯æ·»å æ°ç»çå ç´ ï¼å¹¶è¿åæ·»å æ°å ç´ åçæ°ç»é¿åº¦ã * å¦æå ¥åä¸åæ³ï¼å°ä¼æé; * 妿è¿è¡åºéï¼å°ä¼è¿å空æ°ç»ã * @param {...any} item1 * @returns */ this.push = function (...item1) { // å½ä¼ å ¥å¤ä¸ªåæ°å ¥æ¥æ¶ å¯ç¨ ...å½¢åå 表示 if (item1 == undefined || item1 == null || item1.length == 0) { throw new error('å ¥åä¸åæ³'); } for (let i = this.value.length, j = 0; j < item1.length; i++, j++) { this.value[i] = item1[j] } this.length += item1.length; return this.length; }; /** * charAt() æ¹æ³è¿åæå®ä½ç½®çå符ï¼åæ°æ¯ä»0å¼å§ç¼å·çä½ç½®ã * @param {*} item * @returns */ this.chartAt = function (item) { if (item == undefined || item == null || item > this.value.length || item < 0) { return this.value[0]; } for (let i = 0; i < this.value.length; i++) { if (i === item) { return this.value[i]; } } }; } let wString = new WString(); wString.push('A', 'B', 'C', 'D', 'ab'); console.log('before: ', wString) let charAtString = wString.chartAt(3); console.log('charAtString = ', charAtString);