关于prototype的问题-问答-阿里云开发者社区-阿里云

开发者社区> 吴孟桥> 正文

关于prototype的问题

2016-06-05 18:12:38 1616 1

screenshot
定义一个类,应该把这个类的实例方法,写在构造函数里面,还是挂在prototype上面?为什么?
valueOf,toString,如果要重写这两个函数,应该写在构造函数中,还是prototype上面?

取消 提交回答
全部回答(1)
  • 吴孟桥
    2019-07-17 19:27:25

    方法建议prototype,这样每个对象自动继承,普通类型数据也可以放在prototype,对象之类的数据不要放prototype里面,要不其中一个实例修改过都会影响到其他实例的值,除非你有这种需要

     Student.prototype={
    go:function(){console.log("byebye");}
    attr:{a:1,b:2}//其中一个实例对attr的修改都会影响到其他实例的attr属性
    }

    对于方法,直接this.xxx会每次生成新对象存储函数,prototype函数是公用的。普通属性prototype或者this都可以,这个没区分,会自动拷贝一份给实例
    valueOf,toString放prototype或者this.xxx都可以,应为是方法建议prototype

    0 0
+关注
0
文章
2240
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载