在JavaScript中,我模拟类这样的:设置领域
function MyClass() {} // Constructor
MyClass.prototype.myField = "foo";
我想我应该让代码更易读,并通过使用with
关键字保存快捷键:
function MyClass() {} // Constructor
with (MyClass.prototype)
{
myField = "foo";
myOtherField = "bar";
myMethod = // etc
}
但是,如果我再创建一个实例,并且尝试访问任何这些领域的,他们undefined
。但是,如果我做with (MyClass.prototype)
,然后尝试从中读取值,那就行了 - 只有当我尝试更改它们或创建失败的新字段时。我假设这是因为with (myObject)
将你的范围扩展到myObject的克隆,而不是对原始实例的实际引用。
那么,有什么办法可以解决这个问题吗?任何方式来产生我想要的结果,带或不带with
?或者我注定要一次又一次地写出MyClass.prototype
?
对象文字符号似乎是要走的路,谢谢。 – 2012-07-16 14:30:22
不客气@JackM – 2012-07-16 14:31:22