Javascript调试器提示。显示除“0”以外的值的名称;“对象”;
我想在Javascript中为类系统使用以下思想Javascript调试器提示。显示除“0”以外的值的名称;“对象”;,javascript,google-chrome,firebug,chromium,Javascript,Google Chrome,Firebug,Chromium,我想在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];
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应该为您提供可单击的文本,该文本将在DOM选项卡中打开,以便您在调用
console.log(myObject)时浏览对象属性代码>Javascript可能没有“类”的概念,但我的调试器有。它们通过其本机构造函数标记对象,这似乎是任意的。我认为这可能是可配置的。
function Cat() {
};
console.log(Cat); //output: function Cat() {...}
console.log(new Cat()); // output: Cat
console.log(Object); // output: function Object() {...}
console.log(new Object()); // output: Object