javascript中F.prototype=obj和F.prototype=obj.prototype有什么区别?_Object.prototype.toString() 与to String()的区别是什么?


- #问答
  • 1、 javascript中F.prototype=obj和F.prototype=obj.prototype有什么区别?

    上面的是赋值给原型链,下面的是通过原型链引用!

  • 2、 Object.prototype.toString() 与to String()的区别是什么?

    您好,很高兴回答您的问题。

    首先要弄懂这个问题,你必须知道Js当中的prototype是怎么回事。

    prototye是Js中的原型对象,在Js中一旦一创建了一个对象,那么会自动获得其原型对象prototype。例如:varPerson=function(){....}那么Person对象就自动拥有了一个prototype原型对象。原型对象通过构造函数属性指向了对象的本身。你可以给对象添加属性和方法,也可以给对象的原型添加属性和方法,不同的是,在原型中添加的方法和属性是被所有对象实例共享的。例如Object.prototye.toString()是被任何继承自Object对象的实例共享的。

    在Js中任何对象都继承自Object对象,那么Person类自然就有toString()函数了。而这个toString()是你通过调用Person对象得来的,而Object.prototye.toString()是Object原型对象自带的,如果Person类没有改写toString()函数,那么二者其实源于同根。

    希望我的回答能解决你的问题,谢谢关注,长期解决Js问题。

Related Content: