2017-12-08 8 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

あなたの問題では、JavaScriptの関数に基づいており、それは簡単な置くためのスコープの概念、から生じます。

したがって、あなたの問題を解決するために、あなたは値が現在の関数の外で一部機能的文脈で以前に作成された変数である

value = new Thing(); 

を入力して、現在のスコープの外の変数を割り当てることができます。


さらに詳しく調べるには、JavaScriptのスコープを理解する必要があります。詳細については、Scope (computer science)を参照し、問題の詳細については、Everything you wanted to know about JavaScript scope Todd Mottoの詳細を参照してください。

短くしてください。スコープは関数を入力するたびに「作成」され、そのスコープの環境フレームは変数を作成またはアクセスするたびに使用されます。変数が利用できない場合は、外部コンテキスト(または環境フレーム)が使用されます。だから例を挙げてみましょう。環境フレームが機能changeToyに対してローカルであるため、新しい変数が作成され、割り当てられます例1

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

例2に比べ

例1

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

。例2では、​​変数toyはchangeToyの環境フレームに見つかりません。そのため、外部コンテキスト(この場合はグローバルコンテキスト)が使用されます。変数が見つけられ、再割り当てされます。

関連する問題