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

返利网站程序八方建设集团有限公司网站

返利网站程序,八方建设集团有限公司网站,免费软件下载网站排行,国外的网站建设说到prototype#xff0c;就不得不先说下new的过程。 我们先看看这样一段代码#xff1a; 1script typetext/javascript2 var Person function () { };3 var p new Person();4/script很简单的一段代码#xff0c;我们来看看这个new究竟做了什…说到prototype就不得不先说下new的过程。 我们先看看这样一段代码 1script typetext/javascript 2 var Person  function () { }; 3 var p  new Person(); 4/script 很简单的一段代码我们来看看这个new究竟做了什么我们可以把new的过程拆分成以下三步 1 var p{}; 也就是说初始化一个对象p。 2 p.__proto__Person.prototype; 3 Person.call(p);也就是说构造p也可以称之为初始化p。 关键在于第二步我们来证明一下 1script typetext/javascript 2var Person  function () { }; 3var p  new Person(); 4alert(p.__proto__ Person.prototype); 5/script 这段代码会返回true。说明我们步骤2的正确。 那么__proto__是什么我们在这里简单地说下。每个对象都会在其内部初始化一个属性就是__proto__当我们访问一个对象的属性 时如果这个对象内部不存在这个属性那么他就会去__proto__里找这个属性这个__proto__又会有自己的__proto__于是就这样 一直找下去也就是我们平时所说的原型链的概念。 按照标准__proto__是不对外公开的也就是说是个私有属性但是Firefox的引擎将他暴露了出来成为了一个共有的属性我们可以对外访问和设置。 好概念说清了让我们看一下下面这些代码 1script typetext/javascript 2var Person  function () { }; 3 Person.prototype.Say  function () { 4 alert(Person say); 5} 6var p  new Person(); 7p.Say(); 8/script 这段代码很简单相信每个人都这样写过那就让我们看下为什么p可以访问Person的Say。 首先var pnew Person()可以得出p.__proto__Person.prototype。那么当我们调用p.Say()时首先p中没有Say这个属性 于是他就需要到他的__proto__中去找也就是Person.prototype而我们在上面定义了 Person.prototype.Sayfunction(){}; 于是就找到了这个方法。 好接下来让我们看个更复杂的。 01script typetext/javascript 02var Person  function () { }; 03 Person.prototype.Say  function () { 04 alert(Person say); 05}   06Person.prototype.Salary 50000;   07var Programmer  function () { }; 08Programmer.prototype  new Person(); 09Programmer.prototype.WriteCode  function () { 10 alert(programmer writes code);   11};     12Programmer.prototype.Salary 500;   13var p  new Programmer(); 14p.Say(); 15p.WriteCode(); 16alert(p.Salary); 17/script 我们来做这样的推导 var pnew Programmer()可以得出p.__proto__Programmer.prototype; 而在上面我们指定了Programmer.prototypenew Person();我们来这样拆分var p1new Person();Programmer.prototypep1;那么: p1.__proto__Person.prototype; Programmer.prototype.__proto__Person.prototype; 由根据上面得到p.__proto__Programmer.prototype。可以得到p.__proto__.__proto__Person.prototype。 好算清楚了之后我们来看上面的结果,p.Say()。由于p没有Say这个属性于是去p.__proto__也就是 Programmer.prototype也就是p1中去找由于p1中也没有Say那就去p.__proto__.__proto__也就是 Person.prototype中去找于是就找到了alert(“Person say”)的方法。 其余的也都是同样的道理。 这也就是原型链的实现原理。 最后其实prototype只是一个假象他在实现原型链中只是起到了一个辅助作用换句话说他只是在new的时候有着一定的价值而原型链的本质其实在于__proto__转载于:https://www.cnblogs.com/chengjun/p/5237288.html
http://www.huolong8.cn/news/82552/

相关文章:

  • 工信部 网站开发设计师简单的美食网站模板免费下载
  • 懒人免费建站模板做网站首页ps分辨率多少
  • 网站的主题有哪些贴心网络推广方法
  • 网站制作公做网站如何购买服务器
  • 承德网站建设电话如何做能放照片的网站
  • 网站开发业务需求分析硅云wordpress多站点
  • 网站对公司的作用是什么意思做网站没有做退钱
  • 张家港网站建设微信公众号怎么创建一个公众号
  • 减肥单页网站小程序有什么用
  • 外贸类网站模板桂林 网站 建设
  • 梦幻西游网页版官方网站wap浏览器是什么意思
  • 深圳做网站找哪家好容桂网站制作代理商
  • 怎样做农产品交易平台网站wordpress登陆界面
  • 邯郸做网站建设网站后申请什么类型专利
  • 响应式视频网站模板新闻热点事件及评论
  • flash+xml地图网站幼儿做爰网站
  • 建设工程信息服务平台新网站浦元品牌网站建设
  • 网站首页优化的目的广告创意设计论文
  • 做网站怎么赚钱做网站的网页
  • 怎么在网站做直播间微网站建设加盟
  • 网站建设顾问天津响应式网站设计
  • dede网站模板怎么改找工作的平台
  • 常用的网站建设技术包括重庆微信网站制作公司
  • 建设专业网站平台电子设计全国网站建设
  • 天津大良网站建设高端品牌女装连衣裙
  • 设计开发建设网站企业邮箱怎么开通注册
  • 免费.网站最新域名vs网站开发平台
  • 乐山旅游英文网站建设网站建设博敏
  • 周口网站建设专家南阳响应式网站
  • 校园网站系统的建设房子设计图平面图