2016-06-19 2 views
0

Test-Page-1.htmlというPAGEディレクトリにHTMLファイルを作成しました。そして、その根本には、Script.Con.jsというJavaScriptファイルがあります。Retrieveが別のJavaScriptファイルから返す

(function Flush() { 
    var Customer = { 
     name: prompt("Your Name?"), 
     id: 10100 
     product_bought: prompt("What is it you want?"), 
     d_o_d_expected: prompt("When do you expect it?")} 
    return "name: " + Customer.name + "\n" + 
    "id: " + Customer.id + "\n" + 
    "product: " + Customer.product_bought + "\n" + 
    "expected on: " + Customer.d_o_d_expected; 
}) 
/** FORGIVE THE CODE'S CLUMSINESS **/ 

は私がFlush()関数によって返された値を取得するScript.Con.jsをしたい:HTMLファイル内

は、私はこのスクリプトを持っています。私はこれを行う方法がわからない、私を助けてください。前もって感謝します。

答えて

0

あなたはvar生命維持

<script> 
var result = (function Flush() { 
    var Customer = { 
     name: prompt("Your Name?"), 
     id: 10100, // missing `,` here 
     product_bought: prompt("What is it you want?"), 
     d_o_d_expected: prompt("When do you expect it?")} 
    return "name: " + Customer.name + "\n" + 
    "id: " + Customer.id + "\n" + 
    "product: " + Customer.product_bought + "\n" + 
    "expected on: " + Customer.d_o_d_expected; 
}()); // `result` should be accessible by `Script.Con.js` 
</script> 
<script src="Script.Con.js"></script> 
+0

@ T.J.Crowder OPの省略を逃しました。 'Customer'オブジェクトにカンマがないことにも気付かなかった' '' id:10100'は 'Uncaught SyntaxError:Unexpected identifier(...)'を記録します – guest271314

+0

'()'事呼び出されない限り、省略または意図的に延期されていました。 –

0

によって書かれている方法を返された値のための識別子を設定するには、最後の閉じ括弧の前または次()含むことによって、生命維持を呼び出す前に声明、あなたのScript.Con.jsファイルのコードできないを含むことができ、 Flush   —のいずれかを呼び出すことはできません。名前の付いた関数式を使用して参照を保持しない関数を作成しました。 NFEは現在のスコープに名前を追加することさえないので、その関数を参照することはできません。

あなたはオプションのカップルを持っている:

  1. は、その周りに()を除去することによって、その代わりに機能宣言確認し、その後、Script.Con.jsはそれを呼び出すいます

    function Flush() { 
        var Customer = { 
         name: prompt("Your Name?"), 
         id: 10100 , 
         product_bought: prompt("What is it you want?"), 
         d_o_d_expected: prompt("When do you expect it?")} 
        return "name: " + Customer.name + "\n" + 
        "id: " + Customer.id + "\n" + 
        "product: " + Customer.product_bought + "\n" + 
        "expected on: " + Customer.d_o_d_expected; 
    } 
    

    次にScript.Con.jsに:

    var order = Flush(); 
    

    Script.Con.jsFlush()とコールされるまでプロンプトが表示されないことに注意してください。実際にそれを呼び出すために最後に

    var order = (function Flush() { 
        var Customer = { 
         name: prompt("Your Name?"), 
         id: 10100 , 
         product_bought: prompt("What is it you want?"), 
         d_o_d_expected: prompt("When do you expect it?")} 
        return "name: " + Customer.name + "\n" + 
        "id: " + Customer.id + "\n" + 
        "product: " + Customer.product_bought + "\n" + 
        "expected on: " + Customer.d_o_d_expected; 
    })(); 
    

    ()

  2. 実行それはすぐに、その後、変数を使うScript.Con.jsを持って、変数に結果を保存します。これによりすぐにpromptがトリガーされ、結果はorderに保存されます。次に、Script.Con.jsコードではorder変数を直接使用します。


側注:JavaScriptで圧倒的な規則は、このような非コンストラクタ関数は小文字で始めるということです、例えばFlushではなくflushです。 (また、 "flush"という名前について少し混乱していますが...)

注2:id: 10100の後に,がありませんでした。上記に追加されました。

関連する問題