将正常数据类型分配给Class.prototype

时间:2015-11-24 08:04:15

标签: javascript

我知道原型在JavaScript中的所有类实例之间共享。那么下面的行为是什么解释。

 function Parent() {}
 Parent.prototype.a = 3
 var p1 = new Parent()
 var p2 = new Parent()
 p1.a
=> 3
 p2.a
=> 3
 p1.a = 10
=> 10
 p2.a
=> 3

我知道通常我们应该把函数放在原型中,但为什么上面没有改变所有实例的prototype.a值。

但是以下工作:

  function Parent () {}
  Parent.prototype.prop = {a:1}
  var p1 = new Parent()
  var p2 = new Parent()
  p1.prop.a
=> 1
  p2.prop.a
=> 1
  p1.prop.a = 10
=> 10
  p2.prop.a
=> 10

为什么它适用于对象而不是基本类型?

0 个答案:

没有答案