【发布时间】:2011-07-31 08:40:25
【问题描述】:
我想将以下想法用于 Javascript 中的类系统。
var base = Object.create(
Object.prototype,
{
extend: {
value: function extend (properties) {
var child = Object.create(this);
for (var p in properties) {
child[p] = properties[p];
}
return child;
}
},
make: {
value: function make () {
var child = Object.create(this);
if (child.init) child.init();
return child;
}
}
});
var animal = base.extend();
var cat = animal.extend(
{
init: function init () {
this.lives = 9;
}
}
);
var ares = cat.make();
但是 firebug 和 chromium 中的调试器和控制台将每个实例都称为对象。这很烦人。我该如何解决这个问题?
【问题讨论】:
-
嗯,那是因为,惊喜!JavaScript 中的一切都是对象。 JavaScript 没有“类”的概念。它只有一个可以修改的原型链。您只能使用“instanceof”运算符来模拟 具有基于类的系统。大多数实现将类名和基类名等作为原型变量。
-
如果您还没有发现它,Firebug 应该会为您提供可点击的文本,如果您调用
console.log(myObject);,它将在 DOM 选项卡中打开,以便您探索对象属性 -
Javascript 可能没有“类”的概念,但我的调试器有。他们用他们的原生构造函数来标记对象,看起来,这有点随意。我认为这可能是可配置的。
标签: javascript google-chrome firebug chromium