这是 ES5 的 Object.create 的独立实现:
window.createObject = (function() {
var F = function () {};
return function(o) {
F.prototype = o;
return new F();
}
}());
及其使用示例:
var cat = createObject(animal);
我注意到animal
在尝试调用私有函数时,内部变得有点混乱,例如:
animal = (function() {
function privFunc(arg) {
this.property;
}
function publFunc(arg) {
privFunc.call(this, arg);
}
return {
publFunc: publFunc
}
}());
有没有更简洁的方法来遵循这种模式?特别是,消除对privFunc.call(this, arg)
.
另一种同样丑陋的方式是:
function privFunc(animal, arg) {
animal.property;
}
function publFunc(arg) {
privFunc(this, arg);
}