2013-03-28 1 views
0

항상 공통 문자열이 포함 된 JavaScript 객체 멤버를 만들려고했습니다. 새 객체를 만들 때마다 문자열을 연결하는 대신 생성시 전달 된 값으로 덮어 씁니다. 중요하다면 (나는 생각하지 않습니다) 문자열에 숫자가 들어 있습니다. 예 :Javascript : 객체 생성자의 문자열 연결

function myObj(strToConcat){ 
    this.combinedString = "Hello " + strToConcat, /* have used + and .concat() without success */ 
} 

var newObj = new myObj("1.2.3"); 
console.log(newObj.combinedString); /* says "1.2.3", the leading "Hello " is absent */ 

문자열을 연결하는 데 사용할 수 없습니다.

편집 : 죄송합니다. 오류는 책임이 있다고 생각한 코드 외부에 있습니다. 무시하십시오. 내 사과.

+0

당신의 예는 꽤 망가져 있으며 당신이 주장하는 것을 출력하지 않습니다. 구문 오류가 발생하여 잘못된 변수에 액세스했습니다. 둘 다 고치면 작동합니다 : http://jsfiddle.net/CS2VD/. ''1.2.3 ''을 어떻게 얻을 수 있을지는 모르겠다. –

답변

2

당신은 당신의 코드를 실행하면 SyntaxError: Unexpected token }이 나에게주는

console.log(newObj.combinedString); 
+0

아아, 오타입니다. 그건 내 코드가 말하는 것이 아닙니다. 죄송합니다 오해의 소지가 있습니다 –

+0

또한 이것은'this.combinedString = "Hello"+ strToConcat,'- 끝에 쉼표를 제거하고 세미콜론을 넣으십시오 – Adidi

+0

OP에 실제로 console.log (myObj.combinedString); '1.2.3 "이 아닌'undefined'를 출력합니다. 따라서 게시 된 코드에서 이것이 문제가되는 것은 사실이지만 OP의 실제 코드에서는 문제가되지 않습니다. –

1

해야 참조

console.log(myObj.combinedString); 

에 오류가 있습니다. 두 번째 줄의 끝에 ,;으로 바꾸면 "Hello 1.2.3"의 예상 결과를 얻습니다.

+0

이 에러가 OP의 실제 코드에 있다면 그는 결코 출력을 보지 못할 것입니다 "1.2.3". –

+0

알다시피, 게시 된 내용 만 디버깅 할 수 있습니다. 실제 코드가 게시 된 경우 매우 유용했을 것입니다. :) –