문자열을 array join 방식으로 결합하는 StringBuffer 봉인
6874 단어 StringBuffer
1 (function(window) {
2 var core_ArrPro = Array.prototype;
3 var core_slice = core_ArrPro.slice;
4 var core_push = core_ArrPro.push;
5 var core_unshift = core_ArrPro.unshift;
6
7 function StringBuffer() {
8 this.buffer = [];
9 }
10 StringBuffer.prototype = {
11 push: function() {
12 core_push.apply(this.buffer, core_slice.call(arguments));
13 return this;
14 },
15 unshift: function() {
16 core_unshift.apply(this.buffer, core_slice.call(arguments));
17 return this;
18 },
19 toString: function() {
20 return this.buffer.join('');
21 }
22 };
23 return window.StringBuffer = StringBuffer;
24 })(window);
25 document.getElementById('result').innerHTML = new StringBuffer().push('asdasd').unshift('654', 123).push(123, 564, 'sdf');
apply 효율이call보다 낮기 때문에 대부분push 작업은 매개 변수가 1개밖에 없고 다음과 같이 업데이트됩니다.
(function(window) {
var core_ArrPro = Array.prototype;
var core_slice = core_ArrPro.slice;
function StringBuffer() {
this.buffer = [];
}
StringBuffer.prototype = {
push: function() {
if(arguments.length == 1){
this.buffer.push(arguments[0])
}else if(arguments.length > 1){
this.buffer = this.buffer.concat(core_slice.call(arguments));
}
return this;
},
unshift: function() {
if(arguments.length == 1){
this.buffer.unshift(arguments[0])
}else if(arguments.length > 1){
this.buffer = core_slice.call(arguments).concat(this.buffer)
}
return this;
},
toString: function() {
return this.buffer.join('');
}
};
return window.StringBuffer = StringBuffer;
})(window);
document.getElementById('result').innerHTML = new StringBuffer().push('asdasd').unshift('654', 123).push(123, 564, 'sdf');
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA] String과 == 연산, String '+' 연산과 StringBuilder, StringBuffer의 차이점자바에서는 '=='을 사용할 경우 인스턴스의 참조 값을 비교합니다. a와 b는 "Hello World"라는 같은 문자열을 가지기 때문에, 그래서 당연히 a와 b는 동일한 레퍼런스를 가지기 때문에 '==' 비교에서 t...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.