0
我運行在Node.js的以下內容:的Javascript:的Object.create(原型)不工作
function TextCell(text) {
this.text = text.split("\n");
}
TextCell.prototype.minWidth = function() {
return this.text.reduce(function(width, line) {
return Math.max(width, line.length);
}, 0);
};
TextCell.prototype.minHeight = function() {
return this.text.length;
};
TextCell.prototype.draw = function(width, height) {
var result = [];
for (var i = 0; i < height; i++) {
var line = this.text[i] || "";
result.push(line + repeat(" ", width - line.length));
}
return result;
};
function RTextCell(text) {
TextCell.call(this, text);
}
RTextCell.prototype = Object.create(TextCell.prototype);
RTextCell.prototype.draw = function(width, height) {
var result = [];
for (var i = 0; i < height; i++) {
var line = this.text[i] || "";
result.push(repeat(" ", width - line.length) + line);
}
return result;
};
當我CONSOLE.LOG(RTextCell.prototype),我得到的原型只有平局功能。此外,當我登錄(Object.create(Textcell.prototype))我只是得到「TextCell {}」。爲什麼看起來原型的克隆是空的?
編輯:我注意到我的錯誤。在定義它之前,我創建了RTextCell類型的對象。這就是爲什麼原型變空了。對不起,這裏不包括那部分
[您的代碼似乎對我很好。](https://jsfiddle.net/1oypy93n/)請記住,您正在創建一個新的對象,其原型是您通過它的參數。如果您在Chrome中查看它,請檢查'__proto__'屬性以查看基礎原型。 –
我在node.js中運行它。嘗試使用依賴於具有相同函數定義的兩個類的函數時,會出錯 – miracleJester