如何在JavaScript中继承私有成员?

JavaScript中有一种方法可以将私有成员从基类继承到子类吗?

我希望实现这样的目标:

function BaseClass() {
  var privateProperty = "private";

  this.publicProperty = "public";
}

SubClass.prototype = new BaseClass();
SubClass.prototype.constructor = SubClass;

function SubClass() {
  alert( this.publicProperty );   // This works perfectly well

  alert( this.privateProperty );  // This doesn't work,because the property is not inherited
}

我怎样才能实现类似于类的模拟,就像我可以继承私有(受保护)属性的其他oop语言(例如C)一样?

谢谢,
大卫施莱伯

解决方法

使用 Douglas Crockfords power constructor pattern(链接到视频),您可以实现这样的受保护变量:
function baseclass(secret) {
    secret = secret || {};
    secret.privateProperty = "private";
    return {
        publicProperty: "public"
    };
}

function subclass() {
    var secret = {},self = baseclass(secret);
    alert(self.publicProperty);
    alert(secret.privateProperty);
    return self;
}

注意:使用电源构造函数模式,您不使用new.相反,只需说var new_object = subclass();.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面