【发布时间】:2010-10-20 10:52:57
【问题描述】:
我使用以下函数来创建新对象。
function newObj(o) {
var params = Array.prototype.slice.call(arguments,1);
function F() {}
F.prototype = o;
var obj = new F();
if(params.length) {
obj.init.apply(obj,params);
}
return obj;
}
而且它在大多数情况下都运行良好。然而,我的一个基“类”现在被定义为从另一个基类继承
SPZ.EditablePuzzle = function () {
// function and variable definitions
return {
///some methods and properties
}
}();
SPZ.EditablePuzzle.prototype = SPZ.Puzzle;
现在,当我使用 newObj() 创建新的 SPZ.EditablePuzzle 时,未定义 init 函数,即使它已在 SPZ.Puzzle 中定义,并且我确保 EditablePuzzle 在 Puzzle 之后运行
为什么我的 newObj 函数找不到 init 函数?它不应该在对象本身找不到原型时自动查找原型吗?
【问题讨论】:
标签: javascript inheritance prototype