问答详情
源自:4-2 [JavaScript]创建对象、原型链

为什么不能下面这样写

function foo(){}

var obj=new foo();

obj.prototype.name=1;

obj.prototype.sex=2;

console.log(obj.name+obj.sex)

obj.prototype指向的不是foo的prototype吗,这样写有什么错误

提问者:iceminit 2016-07-25 12:52

个回答

  • cchh1
    2016-07-25 16:25:16
    已采纳

    obj 是 foo 的一个实例,它不是一个函数,所以没有prototype

    • 准确的说,只有构造函数才有prototype属性

    • 通常我们自定义的函数都属于构造函数,所以都有此属性

  • AsyncNooby
    2016-08-02 17:06:07

    <script>
    function foo(){
    }
    //prototype属性也是个对象
    foo.prototype={
            name:1,
            sex:2
    };
    var obj=new foo();
    console.log(obj.name+obj.sex);
    </script>


  • 慕函数9642432
    2016-07-25 15:15:05

    function foo(){}

    var obj=new foo();

    foo.prototype.name=1;

    foo.prototype.sex=2;

    console.log(obj.name+obj.sex);

    这样写就可以了,此时obj继承foo的prototype