从javascript中的一个实例继承
Inheritance from one instance in javascript
我想知道是否有可能有这样的东西:
- 基本类A
- 派生类B1从类a的一个实例a(即
a = new A()
) 派生类B1 - 从a 的相同实例a 派生类B2
我举个例子:
var a = new A();
function A() {
this.var_test = 0;
this.test = function () {
alert(this.var_test++);
}
}
function B1() {
}
B1.prototype = a;
function B2() {
}
B2.prototype = a;
var b1 = new B1();
var b2 = new B2();
b1.test(); // i want alert(0)
b2.test(); // i want alert(1)
怎么做?
当然,只要使用标准的继承方法:
console.clear();
function A() {
this.test = function() {
alert(A.var_test++);
}
A.var_test = 0;
}
var a = new A();
b1 = Object.create(a);
b2 = Object.create(a);
b1.test();
b2.test();
b1.test();
b2.test();
以下是Douglas Crockford关于JavaScript经典继承的一些推荐阅读:http://javascript.crockford.com/inheritance.html
他说得很简洁:
JavaScript是一种无类的、面向对象的语言,因此,它使用原型继承而不是经典继承。这可能会让接受过传统面向对象语言(如c++和Java)培训的程序员感到困惑。JavaScript的原型继承比经典继承更有表现力[…]
相关文章:
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- jQuery"焦点”;在一个实例中有效,但在其他实例中无效
- 当与另一个实例进行比较时,我的类实例如何隐式返回数字
- 为什么可以't我使用成员方法初始化一个实例
- 如何使用 JavaScript 正则表达式搜索除一个实例之外的所有内容
- 挖空视图模型函数仅影响最后一个实例
- 插件总是只得到最后一个实例,如何让它适用于多个元素
- arguments变量是的一个实例
- 使用javascript删除特定HTML实体(breadcrumb)的最后一个实例
- jquery获取类的下一个实例的值
- 如何使外部按钮只影响类的一个实例
- javascript中的Ruby插值在两个实例中的一个实例中不起作用
- 剑道网格:在Angular指令中获取一个实例
- 多个 xmlhttp 请求会导致除最后一个实例之外的所有实例的 readystate 都达不到 4
- Wordpress jQuery 脚本不会在具有 jQuery.noConflict 用法的一个实例上启动
- 如何将 url (http://example.com) 的一个实例限制为仅在客户端打开一次
- 在单个页面上使用此.js 2 次时,它仅适用于一个实例
- 查找给定工作日的下一个实例(即.星期一)与时刻.js
- 谷歌地图将边界限制在世界的一个实例中
- CKEditor 一个实例用于多个 ID