我大约一年前做过这项研究,我可以说它使用起来更快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();
您必须了解的另一件事是环境(我希望您理解我的意思)。最好为变量和函数创造一个新鲜的空间,这样就没有太多的变量/函数需要寻找。把它想象成一个列表——如果它更小,在其中找到东西会更快。所以,你创造了一个新的“空间”:
(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 个项目,因此查找内容更快。
在本地“空间”中调用半全局函数更快。而且,如果你想做一些面向对象的东西,扩展“对象”会更好更快。
更新
如果你想整理你的函数库,那么你可以将它们分组到一个对象中。我不认为它会更慢。
var lib = {
foo: function() {},
bar: function() {},
test: function() {}
};
lib.test();