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

淘宝建设网站的理由深圳网络推广培训机构

淘宝建设网站的理由,深圳网络推广培训机构,oa软件开发,做网站用主机prototype 属性的作用 JavaScript 规定#xff0c;每个函数都有一个prototype属性#xff0c;指向一个对象。 function f() {} typeof f.prototype // object ​ 上面代码中#xff0c;函数f默认具有prototype属性#xff0c;指向一个对象。 对于普通函数来…prototype 属性的作用 JavaScript 规定每个函数都有一个prototype属性指向一个对象。 function f() {} typeof f.prototype // object ​ 上面代码中函数f默认具有prototype属性指向一个对象。 对于普通函数来说该属性基本无用。但是对于构造函数来说生成实例的时候该属性会自动成为实例对象的原型。 构造函数的一个方法或者一个属性 function Animal(name) {this.name name; } Animal.prototype.color white; ​ var cat1 new Animal(大毛); var cat2 new Animal(二毛); ​ cat1.color // white cat2.color // white 上面代码中构造函数Animal的prototype属性就是实例对象cat1和cat2的原型对象。原型对象上添加一个color属性结果实例对象都共享了该属性。 Animal.prototype.color yellow; ​ cat1.color // yellow cat2.color // yellow 如果实例对象自身就有某个属性或方法它就不会再去原型对象寻找这个属性或方法。 总结一下原型对象的作用就是定义所有实例对象共享的属性和方法。这也是它被称为原型对象的原因而实例对象可以视作从原型对象衍生出来的子对象。 原型链 总结一下原型对象的作用就是定义所有实例对象共享的属性和方法。这也是它被称为原型对象的原因而实例对象可以视作从原型对象衍生出来的子对象。 如果一层层地上溯所有对象的原型最终都可以上溯到Object.prototype即Object构造函数的prototype属性。也就是说所有对象都继承了Object.prototype的属性。这就是所有对象都有valueOf和toString方法的原因因为这是从Object.prototype继承的。 那么Object.prototype对象有没有它的原型呢回答是Object.prototype的原型是null。null没有任何属性和方法也没有自己的原型。因此原型链的尽头就是null。 读取对象的某个属性时JavaScript 引擎先寻找对象本身的属性如果找不到就到它的原型去找如果还是找不到就到原型的原型去找。如果直到最顶层的Object.prototype还是找不到则返回undefined。如果对象自身和它的原型都定义了一个同名属性那么优先读取对象自身的属性这叫做“覆盖”overriding。 construction prototype对象有一个constructor属性默认指向prototype对象所在的构造函数。 function P() {} P.prototype.constructor P // true 由于constructor属性定义在prototype对象上面意味着可以被所有实例对象继承。 function P() {} var p new P(); ​ //应该有这个属性吗 p.constructor P // true ​ p.constructor P.prototype.constructor // true ​ p.hasOwnProperty(constructor) // false p小自身没有constructor属性 上面代码中p是构造函数P的实例对象但是p自身没有constructor属性该属性其实是读取原型链上面的P.prototype.constructor属性。 constructor属性的作用是可以得知某个实例对象到底是哪一个构造函数产生的。 另一方面有了constructor属性就可以从一个实例对象新建另一个实例。 function Constr() {} var x new Constr(); ​ var y new x.constructor(); y instanceof Constr // true 上面代码中x是构造函数Constr的实例可以从x.constructor间接调用构造函数。这使得在实例方法中调用自身的构造函数成为可能。 instanceof运算符 instanceof运算符返回一个布尔值表示对象是否为某个构造函数的实例。 var v new Vehicle(); v instanceof Vehicle // true 上面代码中对象v是构造函数Vehicle的实例所以返回true。 instanceof运算符的左边是实例对象右边是构造函数。它会检查右边构造函数的原型对象prototype是否在左边对象的原型链上。因此下面两种写法是等价的。 v instanceof Vehicle // 等同于 Vehicle.prototype.isPrototypeOf(v) 上面代码中Vehicle是对象v的构造函数它的原型对象是Vehicle.prototypeisPrototypeOf()方法是 JavaScript 提供的原生方法用于检查某个对象是否为另一个对象的原型详细解释见后文。 由于instanceof检查整个原型链因此同一个实例对象可能会对多个构造函数都返回true。 var d new Date(); d instanceof Date // true d instanceof Object // true 上面代码中d同时是Date和Object的实例因此对这两个构造函数都返回true。 由于任意对象除了null都是Object的实例所以instanceof运算符可以判断一个值是否为非null的对象。 var obj { foo: 123 }; obj instanceof Object // true ​ null instanceof Object // false 上面代码中除了null其他对象的instanceOf Object的运算结果都是true。 instanceof的原理是检查右边构造函数的prototype属性是否在左边对象的原型链上。有一种特殊情况就是左边对象的原型链上只有null对象。这时instanceof判断会失真。 var obj Object.create(null); typeof obj // object obj instanceof Object // false 上面代码中Object.create(null)返回一个新对象obj它的原型是nullObject.create()的详细介绍见后文。右边的构造函数Object的prototype属性不在左边的原型链上因此instanceof就认为obj不是Object的实例。这是唯一的instanceof运算符判断会失真的情况一个对象的原型是null。
http://www.yutouwan.com/news/75108/

相关文章:

  • 网站设计师加油站配音网站赚钱
  • 没有网站可以做的广告联盟网站引导动画怎么做的
  • 毕设做网站怎么命题哪些软件不是网页制作软件
  • 一个大型网站建设得多少钱罗湖区网站建设
  • 网站建设制作合同模板建设银行官方网站广州
  • 潍坊昌大建设集团网站修水新闻最新消息
  • 免费炫酷企业网站源码做网页用什么软件好
  • 重庆网站查询网站营销教程
  • 可信网站认证查询泰安建设厅网站
  • 大连网站建设方案案例网站价格表
  • 网站编辑 seo抚顺网站推广
  • 网站后台登入密码忘记了网站备案 种类
  • 如何推广自己网站链接全网推广
  • 成都网站建设桔子科技h5网页游戏
  • 北京手机网站制作财经那个网站做的好
  • 关于网站建设的问卷分析网站前端开发培训西安
  • 怎么用ps做简单网站国土资源集约化网站群建设通知
  • 网站加后台网站建设 推广全流程
  • 赣州市网站开发公司南平市住房和城乡建设局网站
  • 擦边球网站做国内还是国外好万户网站
  • 防爆玻璃门网站建设个人网站服务器推荐
  • 成都地铁建设分公司网站yy刷单做的那些网站
  • 湘潭电大网站电子商务发展现状与趋势
  • 好的网站设计题目手机如何编辑网页内容
  • 做网站需要哪些成本制作网页完整步骤代码
  • 网站建设的技术准备关键词网站建设公司
  • 自己做网站打开很卡建设大型网站需要什么硬件
  • 网站建设管理员工工资多少wordpress mysql重启
  • 网站建设应用程序开发线上推广
  • 网站关键词优化男科医院治疗一次2000元