私は JavaScript を勉強していて、そのオブジェクトの概念と混同しています。私はかつて Java プログラマーでしたが、JavaScript にクラスがないことに恐怖を感じています。これまでに学んだことから、関数は JavaScript のクラスを置き換えることができます。new
以下のように ' ' キーワードを使用して関数をインスタンス化できます。
function person() {
var name;
this.tellYourName = function() {
return 'My name is ' + name;
}
this.setName = function(newName) {
name = newName;
}
}
var person1 = new person();
person1.setName('Chris');
alert(person1.tellYourName());
上記のコードでは、person 関数からプロパティを継承するオブジェクト「person1」を作成しました。
だからここに私の質問があります。person() はオブジェクトですか? オブジェクトとperson()
は、クラスかインスタンス化されたオブジェクトかということです。
閉鎖について勉強していたとき、私はこの概念に混乱していました。サンプルコードはこちら
function closureTest(a) {
return function(b) {
return a + b;
}
}
var test = closureTest(1);
alert(test(2));
ここで、closureTest 関数はクラスではなくメソッドとして機能すると思います。行は ' ' キーワードをvar test = closureTest(1);
使用しませんでした。new
つまり、テスト変数は からの戻り値を格納しますが、closureTest(1);
ご覧のとおり、テスト変数は のオブジェクトとして使用されますclosureTest
。これはどのように可能ですか?以下のテストコードで試してみたので
function test(a) {
return a;
}
var t = test(2);
alert(t);
期待どおりにテスト関数の戻り値を出力します。
私の質問があまり混乱しないことを願っています。私は現在 Java から JavaScript に移行しましたが、ほぼ同じになるという私の考えはすべて間違っています。JavaScript のオブジェクトの概念に関するいくつかの講義を読みましたが、さらに混乱します。これを読んでくれてありがとう。あなたから何かを得られることを願っています:)