まさにこのJavascriptの機能はどのようなものですか、どのように使っていますか?これはどのようなJavascript機能ですか?
position = this[this.options.position]();
.call()を検索しましたが、この奇妙なJavascriptの使用に関連するものはほとんどありません。
ありがとうございます。
まさにこのJavascriptの機能はどのようなものですか、どのように使っていますか?これはどのようなJavascript機能ですか?
position = this[this.options.position]();
.call()を検索しましたが、この奇妙なJavascriptの使用に関連するものはほとんどありません。
ありがとうございます。
これは機能とは関係ありませんが、property accessです。これはbracket notationと呼ばれています。実行時に名前が決定されるプロパティにアクセスすることができます。例えば
、これら二つは等価です:あなたは、あなたがすでにブラケット表記に遭遇してきた、配列で働いている場合は
this.left() // dot notation
//
var position = 'left';
this[position](); // bracket notation
:
var arr = [1,2,3];
console.log(arr[0]);
それは機能ではありません、それは関数です。その式はthis
で参照されるオブジェクトのthis.options.position
という名前のプロパティを検索し、そのプロパティの値が参照する関数を呼び出します。たとえば、this.options.position
に文字列"one"
が含まれている場合は、position = this.one()
のようになります。
例:
var obj = {
options: {},
one: function() {
console.log("This is function one");
return 1;
},
two: function() {
console.log("This is function two");
return 2;
},
example: function() {
var position = this[this.options.position]();
console.log(position);
}
}
obj.options.position = "one";
obj.example();
obj.options.position = "two";
obj.example();
これはcall' 'とは何の関係もありません。この関数呼び出しについて正確に理解できないものは何ですか?これは、呼び出されている関数を生成するプロパティへのアクセスに過ぎません。 – Xufox
'this.options.position'が' 'left''だった場合、' position = this.left(); ' –