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

房产类网站开发云南百度建站

房产类网站开发,云南百度建站,seo新手入门教程,直播app怎么开发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.w-s-a.com/news/710055/

相关文章:

  • 泰州网站建设电话彩票网站怎么做代理
  • 泉州网站制作推广山西网站开发建设
  • 百度商桥怎样绑定网站百度推广登陆
  • 重庆网站建设论坛株洲论坛
  • 网站怎么做切换中英文济南广运建设公司网站
  • 网页游戏网站搭建免费建网站哪个模板多
  • 公司起名打分最准的免费网站直播网站app开发
  • 医疗器械类网站前置审批网站临时域名
  • 金融网站策划方案网站开发表格整体页面居中
  • 句容本地网站黄石下陆区建设局网站
  • 免费网站服务陕西省咸阳市建设银行网站
  • 网站建设活动计划做网站意义
  • 莱芜新闻主持人名单seo sem 外贸建站 网站建设 文化墙设计
  • 易语言可以做网站嘛赣州网站建设开发
  • 网站建设规范布局网站建设费往什么科目
  • 乐清手机网站设计哪个汽车网站汽贸店免费做
  • 网站建设课程总结报告推广软文
  • 企业网站哪里可以做烟台seo网站推广
  • 怎样建设网站优化珠海网站建设开发
  • 泰兴住房和城乡建设厅网站福州app开发
  • 免费制作公司网站seo前线
  • 导购网站怎么推广有网站源码怎么搭建网站
  • 网站开发问题杭州制作公司网站
  • 网站推广seo是什么wordpress 去除顶部
  • 建筑学不会画画影响大吗电子商务沙盘seo关键词
  • 重庆网站建设找承越上海建设工程招投标网
  • 网站建设四个步骤下单的网站建设教程
  • 网站建设合同的验收表响应式网站建设哪家好
  • 手机网站建设视频长沙百家号seo
  • 网站未备案怎么访问网站开发前端需要学什么