[英]Create objects inside a module javascript
我正在用javascript學習設計模式,但是創建模塊時遇到問題。 我正在模塊內部創建一個Person對象,並將其與構造函數模式組合在一起,只是因為我也在學習它,但沒有任何反應。
有人可以幫我嗎,我不明白我的錯誤
var myModule = (function () {
function Person(id, name) {
this.id = id;
this.name = name;
}
Person.prototype.toString = function () {
return "\nID: " + this.Id + "\nName: " + this.name;
};
return {
newPerson: function (id, name) {
return new Person(id,name);
console.log(Person.toString());
}
};
})();
var x = myModule;
x.newPerson(1, "John");
你應該用
var myModule = (function () {
function Person(id, name) {
this.id = id;
this.name = name;
}
return {
newPerson: function (id, name) {
return new Person(id,name);
}
};
})();
var x = myModule;
console.log(x.newPerson(1, "John"));
忘記了toString()
,大多數控制台都可以獲取對象,並以更好的方式顯示它。
在您的情況下,您想記錄Person
構造函數的toString()
,這將導致如下所示的字符串:
"function Person(id, name) {
this.id = id;
this.name = name;
}"
但它不會運行,因為您將其放在newPerson()
函數的return語句之后,並且return語句停止執行並返回結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.