2016-05-16 2 views
-1

は、私はこの関数コンストラクタにthis以外の変数を含めることはできますか?

var j = function(){ 
this.name = "Joe", 
var no = "23" //--->statement 2 
} 

のようなものを作成した場合、私は、関数コンストラクタが「これを使用する必要があることを理解し、エラー VARなし=「23」 ^^^

SyntaxError: Unexpected token var 
    at Object.exports.runInThisContext (vm.js:53:16) 
    at Object.<anonymous> ([stdin]-wrapper:6:22) 
    at Module._compile (module.js:541:32) 
    at node.js:328:29 
    at _combinedTickCallback (internal/process/next_tick.js:67:7) 
    at process._tickCallback (internal/process/next_tick.js:98:9)  

を得ることに気づきました"変数を使用していますが、なぜ文2でエラーが発生するのか不思議です。

答えて

5

代わりにこれを意味しましたか?

var j = function(){ 
this.name = "Joe"; 
var no = "23"; 
} 

"Joe"の後にカンマの代わりにセミコロンが付いています。とにかくセミコロンはオプションです。あなたはそれを放置することができます。

+0

また、 'j();を追加する理由を説明できますか? console.log(j.no); 'は未定義を返しますか? –

+0

'no'は' j'の前提条件ではないので、外部からは利用できないコンストラクタ内の変数です。 –

+0

どのように私はそのプロパティが知っていますか? –

関連する問題