当前位置: 首页 > news >正文

360安全网站怎么做号码认证企业所得税怎么缴纳

360安全网站怎么做号码认证,企业所得税怎么缴纳,毕业答辩问题怎么做的这个网站,义乌论坛网站建设目录 一、问题引出 二、prototype原型对象 三、小结 四、constructor 五、__proto__对象原型 六、原型链 一、问题引出 由于JS的构造函数存在内存浪费问题: function Star(name,age){this.namenamethis.ageagethis.singfunction () {console.log("唱歌&…

目录

一、问题引出

二、prototype原型对象

三、小结

四、constructor

五、__proto__对象原型

六、原型链


一、问题引出

由于JS的构造函数存在内存浪费问题:

    function Star(name,age){this.name=namethis.age=agethis.sing=function () {console.log("唱歌!")}}let star01=new Star("Jack",18)let star02=new Star("Mark",20)console.log(star01.sing==star02.sing)

打印:不同实例对象的动态方法是不同的,会开出新的内存区域用于存储相同的方法。

对此问题,提出了原型处理方法。

二、prototype原型对象

我们可以将不变的方法直接定义在prototype属性中,以减少内存开销。

对上面的问题代码进行优化:

    function Star(name,age){this.name=namethis.age=age}Star.prototype.sing=function (){console.log("唱歌!")}let star01=new Star("Jack",18)let star02=new Star("Mark",20)console.log(star01.sing==star02.sing)

打印:可以看到两个实例对象的该方法是同一个,证明都使用了同一个原型里的方法,没有新开内存拷贝。

三、小结

1、公共属性写到构造函数里;

2、公共函数写到prototype原型对象里;

3、构造函数里的this就是指向实例化的对象;

4、原型对象里的this还是指向实例化的对象。

四、constructor

prototype里的属性constructor属性就是帮原型确定它的构造函数是谁,如,构造函数Star的prototype里的constructor属性就是指向Star构造函数的。

作用:指向原型对象的构造函数。

    function Star(){}console.log(Star.prototype)Star.prototype={sing:function (){console.log("唱歌")},dance:function (){console.log("跳舞")}}console.log(Star.prototype)

打印:没构造前,有constructor属性,构造后没有了

可以看到,上面这种写法直接给prototype赋值了新值,没有了constructor对象标识,正确写法应该是:

    function Star() {}console.log(Star.prototype)Star.prototype = {//重新指回这个原型的构造函数 Starconstructor: Star,sing: function () {console.log("唱歌")},dance: function () {console.log("跳舞")}}console.log(Star.prototype)

打印:

五、__proto__对象原型

每个实例化的对象都有一个__proto__,而这个__proto__就是指向构造函数的prototype对象的。这样一来,每个实例化对象都可以访问prototype里的数据了。

1、这是一个只读属性;

2、

    function Star() {}const star01=new Star()console.log(star01.__proto__ === Star.prototype)

打印:这里可以看到__proto__指向的是构造函数的原型对象

此外,__proto__实例化对象的原型中也有constructor,并且是指向prototype原型对象中的constructor的。

六、原型链

只要是对象就是__proto__,prototype对象中也有__proto__属性,我们按照prototype的__proto__可以一级一级的指向,到最顶层Object.prototype.__proto__指向为null。

使用场景:比如某个对象需要调用一个方法,而这个方法在当前对象里没有,就会向上一级查找是否有该方法,若仍然没有再往上寻找prototype里是否有该方法,依次类推,直至到顶层prototype里查找,指向为null时结束查找。

可以通过instanceof来判断对象是否在一个原型链上。

http://www.yayakq.cn/news/660463/

相关文章:

  • 一 一个甜品网站建设目标网络工程就业前景好吗
  • 建设官方网站的请示网站开发公司合作协议书
  • 上海定制建设网站自动的网站制作
  • 免费网站源码软件开发培训学校收费标准公示
  • 哪个网站看电视剧最全还免费asp做网站主要技术
  • 肇庆网站制作设计网站备案的作用
  • 三水网站建设企业开发 程序网站
  • 网站建设 制作教程 pdf怎么网站推广
  • 长沙seo网站推广门户网站的建设方案
  • 用什么网站做海报视频制作平台
  • 盘锦建设小学网站服务支持型网站
  • 网站建设与管理.pdf一个空间放2个wordpress
  • 网站优化公司效果网站打不开的原因
  • 企业网站建设分工网站建设 腾
  • 医院网站建设计划网站建设团队成员
  • fullpage网站网络营销产品的首选产品
  • 食品网站开发步骤html转pdf在线
  • 河南省住房和城乡建设厅门户网站重庆市公路建设网站
  • 手机微网站开发教程网站公司查询
  • 十堰市建设工程管理处网站青岛公司做网站
  • 海珠做网站公淄博seo外包公司
  • 江西万年县建设局网站百度游戏中心app
  • 别墅装修装饰广州seo和网络推广
  • 网站建设结束语自适应的网站
  • 手机网站规格网站模版库
  • 网站鼠标移上去显示层建设银行网站银行登录
  • 网站后台管理系统管理员登录有效的网站推广方案
  • 怎样把网站上传到服务器上用html框架做网站
  • 自己开网站需要什么怎么在自己电脑上建网站
  • 网站中加入百度地图仪征做网站