• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

js的prototype

function car(brand,money){    this.brand = brand;    this.money = money;    this.info = function(){        return this.brand + '要卖' + this.money;        }     }为什么说info每次new的时候需要重新定义,而放在car.prototype.info的时候就可以在实例之间共享
请给我详细解释下,我大概知道一些

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

1.因为car.prototype指向一个对象,如果你将info扔到car.prototype上的话相当于给这个对象添加了一个info函数。
2.然后你new一个car相当于创建一个空的对象,然后将这个对象的proto属性设置为指向car.prototype,实例.__proto__ ===car.prototype
3.当你调用实例.info的时候,他会在自身里面先找有没有info函数,没有的话就到实例.__proto__里面找,还找不到就到实例.__proto__.__proto__里面找,一直找到Object.prototype上面看有没有为止。
4.如果你将info扔到car.prototype上,那么以后通过这个函数new出来的实例所调用的info函数都是同一个函数,但是不放在car.prototype上的话,每次你new出来的实例调用的info方法都是不同的方法(实例自己的info方法)

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!