Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象属性与公共方法_Javascript_Performance_Methods_Properties - Fatal编程技术网

javascript对象属性与公共方法

javascript对象属性与公共方法,javascript,performance,methods,properties,Javascript,Performance,Methods,Properties,如果我有一个javascript类,我希望在其中公开一个方法,那么使用this关键字公开该方法(即使用this或object.prototype.method以非限定的方式公开该方法,或者使用object.defineProperty定义对象属性)是否更好 我想知道您可能知道的任何性能影响,包括速度和/或占用空间。显然,在object.defineProperty中,我有能力控制对属性的访问,从而控制对其公开的任何方法的访问,尽管每个方法仅限于一个参数。但是,如果使用方法,我可以创建e访问控制更

如果我有一个javascript类,我希望在其中公开一个方法,那么使用this关键字公开该方法(即使用this或object.prototype.method以非限定的方式公开该方法,或者使用object.defineProperty定义对象属性)是否更好

我想知道您可能知道的任何性能影响,包括速度和/或占用空间。显然,在object.defineProperty中,我有能力控制对属性的访问,从而控制对其公开的任何方法的访问,尽管每个方法仅限于一个参数。但是,如果使用方法,我可以创建e访问控制更灵活,因此封装不是真正的问题,但鉴于object.defineProperty是一种语言功能,允许我使用揭示模式,我想知道是否有任何性能影响


非常感谢您的输入…

考虑使用typescript,它将使类更易于使用,更具可读性,而且您不必学习新的语言,因为它与普通javascript完全兼容。它只需在方法之前添加“private”或“public”即可解决您的问题。我刚刚发现了typescript a几天前,从现在起,我将在项目中使用它(我曾经在actionscript中编写过很多程序,所以它很棒!)但在此之前,由于我正在重新学习基础语言概念,我想我会找出是否有人知道。这确实是我感兴趣的性能影响,因为我正在编写一些动画代码,我想知道作为一种语言功能,是否可以在时间紧迫的情况下以更有效的方式调整对属性的访问评估而不是方法调用的开销。因此,如果有人知道编译器/解释器是如何工作的,或者已经运行了定时实验。我现在可以去codepen或类似的地方尝试一下。快速看一下,方法似乎比对象属性快,至少在传递参数的地方。