2017-12-08 17 views
0

사용자 입력 값과 임의 값을 비교하는 if 문 결과를 기반으로 개체의 새 인스턴스를 만듭니다. 사실 인 경우 객체의 새 인스턴스를 만들고이 비교가 true가 될 때마다 객체의 새 인스턴스를 만들고 싶습니다.값이 참이면 개체의 새 인스턴스를 만듭니다.

이 작업을 수행하는 방법은 object.create()입니까?

var firstthing = new thing(); 

function createnewthing() 
{ 
    var entry = document.getElementById('theirentry').value; 
    if (oneobjectinaclass == "type1") 
    var firstvalueinarray = type1[0]; 
    else if (oneobjectinaclass == "type2") 
    var firstvalueinarray = type2[0]; 
    else if (oneobjectinaclass == "type3") 
    var firstvalueinanarray = type[0]; 
    if (variableassignedtowhichevertype[1] == avaluetocompare) 
    { 
     numCorrect++; 
     alert('You\'re right! ' + numCorrect); 

     //the code I'm trying to get to accomplish this goes here 
     //var createanotherthingeachtimethisistrue = new Thing(); 

    } 
    else { 
     alert('Wrong!'); 
    } 
} 
+0

코드를 실행하려고 시도 했습니까? 네가 그렇게했다면 일하지 않았 니? 당신은 (객체를 만드는 것 외에) 무엇을 성취하려고합니까? – Patrick

+0

1 개체를 생성합니다. 전달 된 값이 참일 때마다 새로운 값을 생성해야합니다. 이것은 여러 번 실행됩니다. 이것은 단지 창조에 관한 모든 것을 창조 할뿐입니다. 이름은해야 할 일을 설명하는 자리 표시 자입니다. – Dolton42

+0

그런 경우 대신 배열에 넣을 수 있습니까? 변수 이름은 실제로 수행하려는 것을 설명하는 것이 아닙니다. 새로운 객체를 생성하는 것은'new Thing()'을 타이핑하는 것만 큼 간단 합니다만,이 작업을 시도했는지, 그리고 그 경우 왜 만족스럽지 않은 이유는 확실하지 않습니다. – Patrick

답변

1

귀하의 문제는 자바 스크립트 기능을 기반으로 간단 넣어 범위의 개념에서 발생한다.

따라서 값이 현재 함수의 밖에서 기능 컨텍스트에서 이전에 생성 된 변수 인 경우

value = new Thing(); 

을 입력하여 현재 범위의 외부 변수를 지정할 수 있습니다 문제를 해결하기 위해한다.


더 자세히 살펴 보려면 JavaScript의 범위를 이해해야합니다. 자세한 내용은 Scope (computer science)을 참조하고 문제에 대한 자세한 내용은 Todd Motto의 Everything you wanted to know about JavaScript scope을 자세히 살펴보십시오.

짧게 입력하십시오. 범위는 함수를 입력 할 때마다 "생성"되며 해당 범위의 환경 프레임은 변수를 만들거나 액세스 할 때마다 사용됩니다. 변수를 사용할 수 없으면 외부 컨텍스트 (또는 환경 프레임)가 사용됩니다. 예를 들어 설명하겠습니다.

예 2

비교 예 1

var toy = 'stick'; 
function changeToy() { 
    var toy = 'ball'; 
} 
changeToy(); 

새로운 변수 생성 환경 프레임 함수 changeToy 로컬 때문에 할당 될 실시 예 1 에서

var toy = 'stick'; function changeToy() { toy = 'ball'; } changeToy(); 

. 예제 2에서 변수 toy는 changeToy의 환경 프레임에서 발견되지 않으므로 외부 컨텍스트 (이 경우 전역 컨텍스트)가 사용됩니다. 변수가 발견되고 다시 할당됩니다.