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