gpt4 book ai didi

javascript - 在javascript中返回属性VS属性直接访问的方法

转载 作者:行者123 更新时间:2023-11-30 06:38:51 26 4
gpt4 key购买 nike

我发现许多 javascript 开发人员创建的方法只是像这样返回一个属性:

function Obj (prop) {
this.prop = prop; // public
}
Obj.prototype.getProp = function () {
return this.prop;
};

虽然 prop 是公开的并且可以像这样访问:

var a = obj.prop;

此外,我发现使用方法访问对象属性比直接访问对象属性慢 121 倍(在 Firefox 中)

var a, b,
obj = new Obj(1);

a = obj.prop;
// ~6ns on Chrome
// ~5ns on Firefox

b = obj.getProp();
// ~6ns on Chrome (no difference)
// ~730ns on Firefox (122x slower...)

所以我的问题是:我们应该始终创建返回属性的方法,还是可以直接访问属性?那是反模式吗?

最佳答案

是的,这是一个反模式。由于 js 没有原生的 getters 和 setters 将跨浏览器,但是,您应该创建自己的 getters 和 setters,例如:

Obj.prototype.getProp = function () {
return this.prop;
};

是的,您仍然可以直接访问此 Prop ,但现在您不必这样做了。更多关于那个。这样你就可以通过闭包创建私有(private)属性:

function Foo() {
var __yourPrivateProp = 'Bar';
return {
getyourPrivateProp: function () {
return: __yourPrivateProp
}
};
}

关于javascript - 在javascript中返回属性VS属性直接访问的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com