既然函数也是引用类型,为什么原型继承无法改变

如题,下面代码里数组可以改变,但是函数却无法改变:

        var human = {

            say:function(){

               console.log("我是人类");

            },

            arr:[1,2,5,4]

         }

         

         human.say();


             

             var people = Object.create(human);

             

             people.say = function(){

                console.log("我改变了他");

             }

             people.arr.push("hello");

             

             people.say();    //输出的是"我改变了他"


             var anotherPeople = Object.create(human);   

             

             anotherPeople.say();    //没有变化,还是"我是人类"

             

             console.log(anotherPeople.arr);   //数组arr =[1,2,5,4,'hello']

             

             


30秒到达战场
浏览 466回答 1
1回答

慕沐林林

你这个问题就好比:var a = {data:1};var b=a;b={data:3};console.log(a);//{data:1}var a = {data:1};var b=a;b.data=3;console.log(a);//{data:3}你得分清楚操作对象和改变变量的指向。。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript