prototype
function Star(uname,age) {this.uname=unamethis.age=age}Star.prototype.sing = function() {console.log('我会唱歌')}let wff = new Star('王霏霏',18)let pxz = new Star('裴秀智',18)wff.sing()pxz.sing()
__proto__
(对象都会有一个属性__proto__) console.log(wff.__proto__ === Star.prototype)// 输出结果为true
__proto__
)和构造函数原型对象(prototype
)里面都有一个constructor属性,constructor我们称为构造函数,因为它指回构造函数本身; function Star(uname,age) {this.uname=unamethis.age=age}/*Star.prototype.sing = function() {console.log('我会唱歌')}vie = function() {console.log('我会拍电影')}*/Star.prototype = {constructor:Star,sing(){console.log('我会唱歌')},movie(){console.log('我会拍电影')}}let wff = new Star('王霏霏',18)let pxz = new Star('裴秀智',18)console.log(structor)console.log(wff.__proto__.constructor)
注意:如果我们修改了原来的原型对象,并且采取直接给prototype赋值为一个对象的方法(这时候会把原来的constructor属性覆盖掉),则我们必须手动利用constructor这个属性指回原来的构造函数(这样我们才能够知道我们的对象是通过哪一个构造函数创建出来的)。
注意:因此,当我们今后想要利用原型对象扩展内置对象方法的时候,对于数组和字符串内置对象,不能
给原型对象覆盖操作诸如Array.prototype={}
;只能是=function(){}
的方式。
本文发布于:2024-02-01 05:33:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170673680834257.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |