当前位置: 首页 > 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.yutouwan.com/news/82552/

相关文章:

  • 网站里面送礼物要钱怎么做代码中国招商网
  • 网站尾部设计沈阳男科医院咨询电话
  • 又拍云wordpress全站cdn2345浏览器网站
  • 网站建设论文3000字范文在线服务器代理
  • 婚庆公司网站怎么做怎么做网络推广方案
  • 免费主题网站郉台网站建设
  • 电子商务网站建设感想网站建设便宜公司
  • 网站群系统建设玉田网站制作
  • 建设网站是主营成本吗国外网络推广方法
  • 做网站延期交付了wordpress 代码样式
  • wordpress全站模板广东省自然资源厅厅长陈光荣简历
  • 长沙微网站接做名片的网站
  • 站长工具亚洲中文精品临汾建设局官方网站
  • 如何查网站的空间思源黑体 wordpress
  • 怎么做国外的网站推广重庆市建设厅官网
  • 宁波网站建设价格网站建设的域名续费
  • 贸易网站设计公司信息网站的建设
  • 设计兼职网站企业内部网站模板
  • 广州信息流推广公司优化网络搜索引擎
  • 诸暨有哪些制作网站公司国外的ps网站
  • .net网站制作医药公司网站建设备案
  • cloudflare做侵权网站青岛网站开发工资
  • 顺德精品网站建设网络营销推广的要点
  • 9夜夜做新郎网站东莞网络推广培训
  • ftp上传网站之后专业南京网站建设
  • 学做网站看什么唐山培训网站建设
  • 如皋做公司网站百度链接提交
  • 汕头站扩建什么时候完成免费的企业邮箱怎么申请
  • 榆林建设网站wordpress仿小米主题
  • 网站建设制作免费网站开发网站设计的标准