即使没有"真实" javascript
中的对象我在如何使它们彼此区分方面苦苦挣扎。
例如,我有两个对象Apple
和Orange
定义如下:
function Apple(){
this.name = "Apple";
}
和
function Orange(){
this.name = "Orange";
}
从OOP
的角度来看,两个name
属性没有连接,因为它们是不同类的属性。
我的问题/问题是,当重命名class
Apple的name属性时,ReSharper还会要求我重命名Orange类的属性。
同时按下F12(GOTO DEFINITION)将显示两个属性。
但为什么呢?它们是否在全球范围内定义?我如何区分它们,以便橙色和苹果是真正不同的对象?
答案 0 :(得分:0)
ReSharper无法提前知道您将如何使用您的功能" Apple"和" Orange"。这就是为什么它会搜索某些符号的所有可能动态用法的原因。让我们考虑以下示例:
function Apple(){
this.name = "Apple";
}
function Orange(){
this.name = "Orange";
}
var x = {name: "Tomato" };
Apple.call(x);
alert(x.name);
Orange.call(x);
alert(x.name);

如果您重命名其中一个名为' name'对于不同的东西,但保留其他名称' name',您的代码将被破坏。因此,重命名所有这些都是有意义的。
这就是ReSharper在这种情况下列出所有三种用法的原因,并且由您自己决定,根据您的代码的确切语义,重命名哪些以及哪些将作为是