在
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();.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。