search

Home  >  Q&A  >  body text

javascript - js原型链问题

var a = {};
a.prototype = {b:'heheh'}
console.log(a.b)

为什么a.b 是undefined呢??

PHP中文网PHP中文网2827 days ago620

reply all(5)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-11 13:03:39

    这种情况其实是为 a 对象添加了一个 prototype 属性

    var a = {prototype:{b:'heheh'}};
    

    并不是对象的原型,我想你需要如此如此:

    var a = {b:"b”};
    var b= Object.create(a);
    b.b
    

    或者如此如此:

    function A(){}
    A.prototype = {b:'heheh'}
    var a = new A;
    a.b
    

    reply
    0
  • ringa_lee

    ringa_lee2017-04-11 13:03:39

    只有构造函数才有原型链概念,而 a 是对象。

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-11 13:03:39

    对象并没有prototype属性.
    对象的属性是__proto__, 是一个不可枚举的属性.
    prototype属性是针对于构造函数的.
    一个是函数, 一个是对象. 不可混淆.

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-11 13:03:39

    var a = {};
    a.prototype = {b:'heheh'}   //给a添加一个属性prototype,值为一个对象
    console.log(a.prototype.b)  //要取就要这样取 'heheh'

    你本意是想添加原型链属性,原型链希望有助。

    reply
    0
  • 阿神

    阿神2017-04-11 13:03:39

    区分一下prototype和__proto__

    reply
    0
  • Cancelreply