![](/img/trans.png)
[英]How do I have multiple methods with the same name in a JavaScript class?
[英]Can I have object with the same name as class in javascript?
我可以在javascript中拥有与类同名的对象吗?
javascript 本身没有类,只有构建对象的方法。
更新:ES6,也称为 ECMAScript2015,引入了类。
直接回答你的问题,是和否。 您可以创建一个函数来构建您的对象,但是一旦您有一个同名的变量,该函数就会被销毁。
之间没有区别
function bob() {
//code goes here
this.name = "bob";
}
和
var bob = function() {
//code goes here
this.name = "bob";
}
如果你声明了一个名为 bob 的变量,那么会发生什么:
var bob = new bob();
在这种情况下,函数 bob 将被调用,对象被创建,函数 bob 被新变量 bob 破坏。
如果你想创建一个单例,那么你不妨使用一个闭包,如下所示:
var bob = new (function() {
//code goes here
this.name = "bob";
})();
jQuery 怎么样: $('string')
,据我所知是一个函数,以及$.ajax
,一个具有名为 ajax 的方法的类。
名为$
函数和名为$
类。 我知道我错了,但这就是它的样子。
您可以对类和变量使用相同的名称,是的。 但是以大写字母开头类并保持变量名小写。 (因此是一个类 Bob 和变量 bob。)
Javascript 区分大小写,所以它知道区别。 对你来说,两者读起来都是一样的。
对于这种情况,您应该使您的全局函数和特定函数名称的其他选项如下所示:
var write = function(text) { console.log(text); }
write.hi = ()=>console.log("hi");
write.bye = ()=>console.log("bye");
write.word = (text)=>console.log(text);
write.feature = "Its a feature";
//...
write("baby");//'hello' printed
write.hi();//'hi' printed
write.bye();//'bye' printed
//...
享受...
我的回答是假设牢记最佳实践。 通常 JavaScript 中的对象被定义为const
。 在这种情况下,具有与类名相同的对象名将导致错误。
如果对象未定义为const
,则新对象将覆盖该类。
无论哪种方式,尝试这样的事情的结果都不好,所以应该避免这种做法,并尝试为类和对象保留不同的名称。
但如果有特殊情况,您可以尝试使用TitleCasing更改 Class 名称,使用camelCasing或任何其他变体更改对象名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.