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

深圳罗湖住房和建设局网站百度指数大数据分享平台

深圳罗湖住房和建设局网站,百度指数大数据分享平台,网站设计制作案例,网站建设 域名注册2019独角兽企业重金招聘Python工程师标准 译者按: 本文简单的介绍了new, 更多的是介绍原型(prototype)#xff0c;值得一读。 原文: JavaScript For Beginners: the ‘new’ operator 译者: Fundebug 为了保证可读性#xff0c;本文采用意译而非直译。 di… 2019独角兽企业重金招聘Python工程师标准 译者按: 本文简单的介绍了new, 更多的是介绍原型(prototype)值得一读。 原文: JavaScript For Beginners: the ‘new’ operator 译者: Fundebug 为了保证可读性本文采用意译而非直译。 div styletext-align: center; img stylewidth:81.8%; srcjavascript-new-for-beginner/new.jpeg / /div 当你使用new的时候会 创建一个新的空对象将this绑定到该对象添加一个名为__proto__的新属性并且指向构造函数的原型(prototype)返回该this对象。如果你没有特别理解那么我们接下来用例子来详细解释。首先定义一个构造函数Student该函数接收两个参数name和age。 function Student(name, age){this.name name;this.age age; }现在我们使用new来创建一个新的对象: var first new Student(John, 26);到底发生了什么呢 一个新的对象创建我们叫它objthis绑定到obj任何对this的引用就是对obj的引用__proto__属性被添加到obj对象。obj.__proto__会指向Student.prototype该obj对象被赋值给first变量。我们可以通过打印测试 console.log(first.name); // Johnconsole.log(first.age); // 26接下来深入看看__proto__是怎么回事。 原型(Prototype) 每一个JavaScript对象都有一个原型。所有的对象都从它的原型中继承对象和属性。 打开浏览器开发者控制面板(Windows: Ctrl Shift J)(Mac: Cmd Option J)输入之前定义的Student函数 function Student(name, age) {this.name name;this.age age; }为了证实每一个对象都有原型输入 Student.prototype; // Object {...}你会看到返回了一个对象。现在我们来尝试定义一个新的对象 var second new Student(Jeff, 50);根据之前的解释second指向的对象会有一个__proto__属性并且应该指向父亲的prototype我们来测试一下 second.__proto__ Student.prototype // trueStudent.prototype.constructor会指向Student的构造函数我们打印出来看看 Student.prototype.constructor; // function Student(name, age) { // this.name name; // this.age age; // }好像事情越来越复杂了我们用图来形象描述一下 div styletext-align: center; img stylewidth:61.8%; srcjavascript-new-for-beginner/proto.png / /div Student的构造函数有一个叫.prototype的属性该属性又有一个.constructor的属性反过来指向Student构造。它们构成了一个环。当我们使用new去创建一个新的对象每一个对象都有.__proto__属性反过来指向Student.prototype。 这个设计对于继承来说很重要。因为原型对象被所有由该构造函数创建的对象共享。当我们添加函数和属性到原型对象中其它所有的对象都可以使用。 在本文我们只创建了两个Student对象如果我们创建20000个那么将属性和函数放到prototype而不是每一个对象将会节省非常很多的存储和计算资源。 我们来看一个例子 Student.prototype.sayInfo function(){console.log(this.name is this.age years old); }我们为Student的原型添加了一个新的函数sayInfo -- 所以使用Student创建的学生对象都可以访问该函数。 second.sayInfo(); // Jeff is 50 years old创建一个新的学生对象再次测试 var third new Student(Tracy, 15); // 如果我们现在打印third, 虽然只会看到年龄和名字这两个属性, // 仍然可以访问sayInfo函数。 third; // Student {name: Tracy, age: 15} third.sayInfo(); // Tracy is 15 years old在JavaScript中首先查看当前对象是否拥有该属性如果没有看原型中是否有该属性。这个规则会一直持续直到成功找到该属性或则到最顶层全局对象也没找到而返回失败。 继承让你平时不需要去定义toString()函数而可以直接使用。因为toString()这个函数内置在Object的原型上。每一个我们创建的对象最终都指向Object.prototype所以可以调用toString()。当然 我们也可以重写这个函数 var name {toString: function(){console.log(Not a good idea);} }; name.toString(); // Not a good idea创建的name对象首先查看是否拥有toString如果有就不会去原型中查找。 总结 也许这些概念对你来说有点多但是当你理解了使用原型可以让你写出更加高效的代码。 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。 自从2016年双十一正式上线Fundebug累计处理了7亿错误事件得到了Google、360、金山软件、百姓网等众多知名用户的认可。欢迎免费试用 版权声明 转载时请注明作者Fundebug以及本文地址 https://blog.fundebug.com/2017/05/25/javascript-new-for-beginner/ 转载于:https://my.oschina.net/u/3375885/blog/2878504
http://www.huolong8.cn/news/190098/

相关文章:

  • 深圳市多语言网站建设公司wordpress 整容模板
  • 网站开发编程的工作方法dw怎么做百度网站
  • 临汾推广型网站建设做网站该注意哪些基本要素
  • 如何用rp做网站步骤代理网关app未运行怎么办
  • 安阳网站开发wordpress 幻灯片插件使用
  • 聊城手机站网站公司电话电子商务网站建设课后答案
  • 设计品质网站建设软件开发的步骤
  • 网站建设制作德州网站修改需要什么
  • asp网站相册国外网站 国内访问速度
  • 企业网站优化服务公司怎么做外国网站卖东西
  • 做网站的时候卖过假货而出过事搭建网页游戏教程
  • 孙红雷做的二手车网站校园网站建设方案书
  • 百度新站关键词排名网站对齐原则
  • 网站安全建设seo交流论坛
  • 做网络推广网站有哪些论医院网站的建设
  • 个人网站开发实例jsp网站开发教学
  • 重庆网站维护制作怎么做一个微信小程序
  • 检测网站是否正常国家大宗商品交易平台
  • 外贸建站推广网易企业邮箱收件服务器主机名
  • 三站合一的网站怎么做教程做网站建设的怎么寻找客户
  • 养殖公司网站厦门广告公司电话
  • 台州网站制作推广做网站创意
  • 电子商务网站建设思维导图如何提高网站百度权重
  • 广告推销网站技术支持 祥云平台 英文网站
  • wordpress上传网站建设一个同城购物网站
  • 设计师导航网站大全wordpress适合做大型网站吗
  • 苏州外贸网站建设公司价格企业为什么要做短视频营销
  • 网站设计常见问题亦庄公司做网站
  • 中英双语网站怎么做WordPress圆形图片
  • 衍艺 网站建设深圳wap网站建设