2017-11-13 24 views
2

したがって、外部から関数のプロパティを定義することができます:createNewPerson.hmm = 3;など、アラートを使用すると結果は3になります。しかし、関数内で同じことをしようとすると(関数内のプロパティを定義する場合と同じように)関数内では機能しません。以下のコメント行をすべて試しました。これを達成するための別の方法がありますか、それとも単純に可能ではありませんか?それができない場合は、どのようにjavascriptは、関数に.hmmプロパティを追加し、後でそれを呼び出すのですか?javascript - 関数内でプロパティを定義する方法は?

全コード:

function createNewPerson(name) { 
//var hello = "hgfgh"; 
//hello: "hgfgh" 
//hello = hgfgh; 
//this.hello = hgfgh; 

} 
createNewPerson.hmm = 3; 
alert(createNewPerson.hmm); 
alert(createNewPerson.hello); 
+1

'createNewPerson.hmm =" something ";'(関数内からでも)を使うことができます。しかし、関数が匿名の場合、それは別の話です。 –

+0

'this.hello = 'hgfgh''を試してもよろしいですか?あなたが投稿したものは引用がありませんが、それ以外は正しいです –

+1

'this.hello'は正しい構文ですが、インスタンスを作成する必要があります。 'new createNewPerson()' –

答えて

0

こんにちは、私はあなたがオブジェクトを作成しようとしていると思いますが、コードの下に

jsFiddle

function createNewPerson(name) { 
//var hello = "hgfgh"; 
//hello: "hgfgh" 
//hello = hgfgh; 
this.hello = "hgfg"; 
this.name = name; 
} 
var cnp = new createNewPerson('de'); 
cnp.hmm = 3; 
alert(cnp.hmm); 
alert(cnp.hello); 
alert(cnp.name); 
1

を試してみてください。 javascriptでは、次のようにします。

function Test(){ 
    this.foo = "bar"; 
    this.func = function(){ 
    console.log(this.foo); 
    } 
} 

const test = new Test(); 
test.foo = "baz"; 
test.func(); //Will print "baz". 

「new」の使用に注意してください。これは、コードがオブジェクトのプロパティを変更できるようにするメカニズムを可能にするものです。プロパティの変更された値は、オブジェクト自体によってアクセス可能です。

関連する問題