私は約 1 年前にこの調査を行いましたが、使用する方が高速であると言えますthis.test()。
しかし、それはあなたが何を必要としているかによります。特定の「ウィジェット」用のオブジェクトのみを作成する場合は、不要な関数を jQuery に追加することはお勧めしません。
シンプルなオブジェクト指向の使い方:
function Car(name) {
this.name = name;
}
Car.prototype.startEngine = function() {
// Start the engine...
};
Car.prototype.drive = function() {
this.startEngine();
// Switch the lights, fasten your seatbelt...
};
// create a new car
var bmw = new Car('BMW');
// Drive the car
bmw.drive();
あなたが理解しなければならないもう1つのことは、環境です(私の言いたいことを理解していただければ幸いです)。変数と関数の新しいスペースを作成することをお勧めします。これにより、検索する変数/関数が多すぎなくなります。それをリストとして想像してみてください。リストが小さければ小さいほど、その中のものを見つけるのが速くなります。したがって、新しい「スペース」を作成します。
(function(){
// Your fresh space.
})();
JavaScript は「ローカル」空間で検索を試み、次にグローバル空間で検索を試みます。次のように想像してください。
|- global
|- function aaa
|- function bbb
|- var myName
|- your local space
|- function ccc
|- function aaa It will not overwrite global function with the same name
|- var someVariable
ご覧のとおり、「ローカル空間」にはアイテムが 3 つしかないため、物を見つけるのが速くなります。
ローカルの「スペース」でセミグローバル関数を呼び出す方が高速です。また、オブジェクト指向のことをしたい場合は、「オブジェクト」を拡張する方が適切で高速です。
UPDATE
関数ライブラリを整理したい場合は、それらをオブジェクト内にグループ化できます。遅くなるとは思いません。
var lib = {
foo: function() {},
bar: function() {},
test: function() {}
};
lib.test();