开发者社区> 问答> 正文

关于prototype的问题

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

展开
收起
吴孟桥 2016-06-05 18:12:38 2204 0
1 条回答
写回答
取消 提交回答
  • 方法建议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

    2019-07-17 19:27:25
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载