您需要通過調用這種方式來實例化Person的一個實例:var me = new Person("Robert");
您使用pseudoclassical實例化模式寫什麼你的構造。代碼中的工作方式是,當您使用關鍵字new
時,它會在幕後調用帶有兩行代碼的Person。 原來的功能到此:
function Person(name) {
// The new keyword adds this line
// var this = Object.create(Person.prototype);
this.name = name;
this.sayHello = function() {
"Hi, my name is " + this.name;
};
// and this line
// return this;
}
沒有new
關鍵字,你實際上並沒有從你的函數返回任何東西。
其他原因爲什麼你可能沒有得到你所期望的。你的sayHello
函數只是創建一個字符串。我假設你要登錄這個字符串到控制檯,所以修改你的功能,像這樣:
this.sayHello = function() {
console.log("Hi, my name is " + this.name);
}
你的最終代碼應該是這樣的:
function Person(name) {
this.name = name;
this.sayHello = function() {
console.log("Hi, my name is " + this.name);
};
}
var me = new Person("Robert");
me.sayHello();
'新人(「羅伯特」);' – thefourtheye
很抱歉更新了我的意思。 –