0
即使javascript
中没有“真实”对象,我仍在努力如何使它们彼此不同。不同的javascript对象具有相同的属性(名称)
例如我有这样限定的两个对象Apple
和Orange
:
function Apple(){
this.name = "Apple";
}
和
function Orange(){
this.name = "Orange";
}
在OOP
的角度来看,这两个name
属性不连接,因为它们是不同类别的属性。
我的问题是,当重命名苹果的class
的名称属性时,ReSharper也会要求我重命名Orange类的属性。 同时按下F12(GOTO DEFINITION)将显示两个属性。
但是为什么?它们是否在全球范围内定义?我如何区分它们,使橙色和苹果是真正不同的对象?
这似乎是与ReSharper不与您的代码的问题。这些类的JS对象是完全不同的:http://jsfiddle.net/16owh01o/3/ –
也就是说,除非你正在调用函数而不是通过构造函数:'Orange(); Apple();'在这种情况下,两者都会写入全局范围,因为'this'会引用全局对象(通常是'window')。也许reshaper对你的函数使用做出假设。 – nils
@nils:那么任何我可以尝试不让他们在全球范围内?不知道你的意思是'除非你将函数作为函数调用,而不是通过构造函数' – KingKerosin