Javascript中的继承:为什么这段代码什么都不做?

Javascript中的继承:为什么这段代码什么都不做?,javascript,oop,Javascript,Oop,那代码有什么问题 var t={a:1}; var g={b:2}; g.prototype=new t(); alert(g.a); //do nothing 构造函数必须是函数 这是一篇关于变量t包含对象而不是函数的非常好的文章,因此不能像对象构造函数那样使用它 您可以将对象用作原型,但需要构造函数来使用原型: var t = { a: 1 }; function g() { this.b = 2; } g.prototype = t; alert(new g().a); 演示:您使

那代码有什么问题

var t={a:1};
var g={b:2};
g.prototype=new t();
alert(g.a); //do nothing

构造函数必须是函数


这是一篇关于变量
t
包含对象而不是函数的非常好的文章,因此不能像对象构造函数那样使用它

您可以将对象用作原型,但需要构造函数来使用原型:

var t = { a: 1 };
function g() {
  this.b = 2;
}
g.prototype = t;
alert(new g().a);

演示:

您使用new和构造函数创建对象,但您现在拥有的t和g已经是对象了

这应该行得通

function t(){
  this.a = 1;
}

function g(){
  this.b = 2;
}

g.prototype = new t();

alert(new g().a); // 1