【发布时间】:2010-11-07 06:55:30
【问题描述】:
所以我一直在做一些类似于 JavaScript 的类的东西,例如
MyClass = function()
{
var x;
this.sayX = function()
{
alert(x);
}
}
但我也见过
MyClass = function()
{
this.x = 0;
}
MyClass.prototype.sayX = function()
{
alert(this.x);
}
最大的问题是,我是否还在今天的 JavaScript 引擎中浪费内存空间,还是他们能够看到我的方法中的重复并优化它们?我问的原因是因为我宁愿进行适当的数据隐藏,而不必在所有内容前加上“this”。
【问题讨论】:
-
请注意,如果对您有帮助,您可以使用with(this) { }。
-
不要使用“with”。它使用起来很危险,并且将从 ECAMScript 的未来实现中删除。不能强调这一点 - 最好假装 JavaScript 中不存在“with”。
-
如果你用第一种方法,如果你做任何继承,你需要更加小心你做什么,你如何混合这两种技术,当你调用超级构造函数时,等
标签: javascript class v8 spidermonkey