ここに私の最初の質問ですので、何かを見逃してもお詫びします。 おそらく、私の問題の解決策が見つかるかもしれませんが、私はそれを検索する方法がわかりませんし、Googleなどでそれを聞く方法についての手掛かりもありません。JavaScriptのコンストラクタと引数
私は次のような問題を持っている、のは
const Product = function (color) {
let self = {};
self.setColor = function(colorToSet) {
color = colorToSet;
}
self.getColor = function() {
return color;
}
return self;
};
なコンストラクタを持って聞かせて、私が使用しようとしたときに、今:クロームコンソールで
let self = {}, color;
私は色が既に宣言されているというエラーを受け取ったので、私(上記のスニペットコードで)、私は説明できない魔法が発生しました。
のは、私はこのような何かを書くだろうと言ってみましょう:それは初めての色を返す場合
let a = Product("Yello");
a.getColor() ----> "Yellow"
a.setColor("red");
a.getColor() ----> "red";
、それは何らかの形で宣言する必要があります。 私は色フィールドがどこにあるのかわかりませんが、実際にはどこでもオブジェクトやプロトタイプで見つけることができません。なぜ私に説明できますか?それはどこですか?
私は色を宣言することができます: self.color = color; しかし、私は上記の例をどのように働かせているのか、そしてカラーフィールドで何が起きたのかを知りたい。私は、このような方法で、パラメータの値を宣言してみましょう使用できるかどう
また、あなたは私に言うことができますか?
const Product = function (color) {
let self = {}, color;
self.setColor = function(colorToSet) {
color = colorToSet;
}
self.getColor = function() {
return color;
}
return self;
};
Afaik、 'color'だけを使うと' window'オブジェクトに追加されます。実際には 'window.color'を取得/設定しています。 –
@Chris G:色が 'window'で定義されていない、これは** closure **の動作です – Pineda