[英]What is the difference between a JS object using literal notation and a namespace
[英]Difference between creating object using prototype and object literal notation
您好我想知道這條線之間的區別:
var MyClass={
init:function(){
}
}
和
var Myclass=function(){};
Myclass.prototype.init=function(){}
var MyClass={
init:function(){
}
}
定義一個具有成員函數init
MyClass
對象。 這是對象文字符號。 這個對象只有一個實例。 您無法創建一個new
。 你只能說例如
MyClass.init();
你不能說
var foo = new MyClass(); (this will cause an error)
另一方面,
var Myclass=function(){};
Myclass.prototype.init=function(){}
是不同的; 它定義了一個“類”(或可以稱為構造函數),它具有一個函數init
但是您可以創建它的多個實例; 每個實例將具有init()函數。
var foo = new Myclass();
var bar = new Myclass();
foo.init();
bar.init();
因此,您真正使用的取決於您的需求。 如果您要創建的對象具有某些實用程序功能,或者代表的服務僅需要一個副本,則第一個很好; 相反,如果由於每個實例的數據可能需要獨立更改而需要創建多個實例,請使用第二個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.