プロパティを取得する関数を作成するにはどうすればよいですか?これを試してみてください6そのプロパティを取得する関数
答えて
:
myfunc = function(){
alert(this.a + ":" + this.b);
};
myfunc.call({a: 5, b: 6});
は、最初のパラメータがある
myfunc = function(){
alert(this.a + ":" + this.b);
};
myfunc.a = 5;
myfunc.b = 6;
結果は5である。例えば
関数のthis
で、2番目のパラメータはy私たちの機能。 call
関数はあなたに関数を呼び出し、myfunc
のthisに{a: 5, b: 6}
を代入します。
いいえ、 'call'の第2引数は' myfunc'であってはなりません。 – Bergi
ああ、私の悪い。私は今それを変更しています。 –
2つの方法があります。最初は、言及した他の人があなたの関数のdelcarationでパラメータに名前を付けるためにあるようです。
function foo(a, b) {
alert(a + ':' + b);
}
foo('hello', 'world'); // Output "hello:world"
もう一つの方法は、しかし、変数はすべての関数のパラメータが含まれている利用可能であるということです、arguments
と呼ばれます。
function bar() {
alert(arguments[0] + ':' + arguments[1]);
}
bar('hello', 'world'); // Output "hello:world"
それはそれは、配列のように見えながら、arguments
変数にはJavaScript Array
オブジェクトのないインスタンスであることに留意すべきである、arguments
で使用するために利用できる唯一のArray
プロパティが.length
です。
あなたの答えを編集して要求されたOPとして ':'を含め、投票しました。 –
ここに 'arguments'を使う理由は絶対にありません。 (そして、いいえ、それは配列でも遅くもありません)。あなたの答えからその部分を削除してください。 – Bergi
@Bergi私はそれが遅いとは決して言いませんでした - 私は、パフォーマンスの要因は小さいと言いました。これは、以前は存在しなかった変数を初期化して移植することは、パフォーマンスにマイナスの影響を与えます。マイクロ秒それはまだ存在し、それを人々に知らせることは良いことです。また、OPがダイナミックな入出力の要求を誤って表現している可能性があるので、ここで議論が必要だと感じた。最後に、配列でない場合は何ですか?確かに私には0でインデックスされた配列のように見えます。 – Scoots
これはクロージャで行うことができます。
var myFunc = (function(a, b) {
return function() {
console.log(a + ":" + b);
}
})(5, 6)
myFunc();
これは行動のようなクラスを作成するためにprototype
を経由して拡張することができます:
var myFunc = (function() {
function myFunc(a, b) {
if (a === void 0) { a = 5; }
if (b === void 0) { b = 6; }
this.a = a;
this.b = b;
}
myFunc.prototype.log = function() {
console.log(this.a + ":" + this.b);
};
return myFunc;
}());
var a = new myFunc();
a.log();
new myFunc().log();
new myFunc(1, 10).log();
//ACCESS ATTRIBUTE
console.log("ACCESSING", a.a);
//OVERWRITE ATTRIBUTE
a.a = 11;
//ACCESS ATTRIBUTE
console.log("ACCESSING", a.a);
a.log();
- 1. javascript関数のasp.button関数のプロパティを取得します。
- 2. 静的プロパティの取得/設定関数
- 3. スタブ関数の引数からプロパティを取得するには?
- 4. その値からプロパティ名を取得
- 5. 関数を取得する
- 6. JSONデータとその変数を使用してプロパティを取得/変更する
- 7. 異なるクラスオブジェクトを関数に渡し、Haxeでそのプロパティを取得しますか?
- 8. linq:最大値を取得し、その結果の関連プロパティを取得します。
- 9. 関数のパラメータ数を取得する
- 10. そのプロパティのgetter/setter内からプロパティ名を取得する方法は?
- 11. 反射によって取得されたプロパティの値を取得する関数を作成する
- 12. プロパティ名とその値を取得するには?
- 13. コンストラクタ関数内にあるプロトタイプのオブジェクトからプロパティを取得する方法
- 14. get_posts()を取得してそれを関数wordpressに渡す
- 15. PHP:レコードを取得する関数ですがエラー:未定義のプロパティ
- 16. ジャンゴそのinit関数内からフィールドの名前を取得
- 17. クリックイベントに関連付けられた複数のプロパティを取得する
- 18. 関数引数の区切りを取得するAPI関数
- 19. gcc関数ツリーノードから関数の引数を取得する
- 20. 他の関数の__LINE__の値を取得する方法(その関数を呼び出す前に)?
- 21. tcltk関数のデータを取得する
- 22. 関数のアリティを取得する
- 23. 解析:関連するオブジェクトからプロパティを取得する
- 24. JavaのプロパティでNeo4関係を取得する方法は?
- 25. Neo4j - 関係プロパティと共にノードの集合を取得する
- 26. 関連テーブルのプロパティを取得するには?
- 27. 関数のtkinterを取得
- 28. 関数とそのコンテキストの保存と取得
- 29. PowershellでAzure関数の関数とホストキーを取得する
- 30. Pythonで** kwargsの関数から* argsを取得する関数
'myfunc(5,5)'と 'function(a、b)' - なぜパラメータを使わないのですか? –
'alert(myfunc.a + ':' + myfunc.b);'関数の独自のプロパティを参照するには、関数本体の中の関数の名前を使用する必要があります。 @KobyDouek彼らは関数自身のプロパティとは全く異なる動作をしているためです。 – Teemu
'myfunc.call(myfunc)' - うまくいきます。このために関数オブジェクトを使用するのは不思議ですが、どうしてですか? – Bergi