Pra*_*sad 4 javascript performance jquery
(function () {
function User() {
//some properties
}
//private fn 1
User.prototype._aPrivateFn = function () {
//private function defined just like a public function,
//for convetion underscore character is added
}
//private function type 2
//a closure
function _anotherPrivateFunction() {
// do something
}
//public function
User.prototype.APublicFunction = function () {
//call private fn1
this._aPrivateFn();
//call private fn2
_anotherPrivateFunction();
}
window.UserX = User;
})();
Run Code Online (Sandbox Code Playgroud)
//定义javascript对象私有方法的两种方法中哪一种更好,特别是在内存管理和性能方面.
jAn*_*ndy 12
您的"私人功能#1"根本不是私密的.版本#2已关闭,因此只能通过您的User对象访问.
通常没有"更好",但在这种情况下,在这种情况下,封闭的功能完全隐藏在外部世界(这显然更好).
仍然有传言说闭包会造成内存泄漏,这是错误的.闭包不会造成内存泄漏,但程序员可以/可以.你的例子完全没问题.
要拥有私有方法,您应该使用几乎完全相同的模式.
var myObject = function() {
// privates
var a = 5,
b = 10,
c = a,
public = {};
public.getA = function() {
return a;
};
public.setA = function(v) {
a = v;
};
function privateOne() {
}
return public;
};
Run Code Online (Sandbox Code Playgroud)
如果您绝对必须(或想要)将函数隐藏在外界之外,则创建闭包会更好。
如果您关心以下内容,则向原型添加方法会更好: