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

珠海网页模板建站大型菜谱网站建设

珠海网页模板建站,大型菜谱网站建设,数据库做后台网站,网站建设公司 成本结转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.hkea.cn/news/14328732/

相关文章:

  • 电子商务网站的建设开发工具wordpress 插件 教程视频
  • 潍坊昌大建设集团有限公司网站kol营销模式
  • 网站设置默认首页网络营销案例具体分析
  • js做示爱网站例子品牌推广广告
  • 合肥专业做网站的怎样建设一个网站教学设计
  • 泉州手机网站建设自己网站怎么推广
  • 虚拟主机对网站seo有哪些影响百度一下你就知道官网首页
  • 找人代做网站需要注意什么家具设计理念
  • 通过高新区网站建设贵州三蒲建设工程有限公司网站
  • php做商城网站建设如何查看网站根目录
  • 网站推广的作用在哪里鹤岗北京网站建设
  • 网站加百度商桥凡科网站是什么做的
  • 东莞系统网站建设中山住房和建设局工程交易网站
  • 网站流量增长做的网站被注销
  • 大连高端网站建设wordpress编辑器无法实现随意排版
  • 没有官方网站怎么做seo优化炫酷wordpress主题
  • seo网站做推广的公司杭州市下城区建设局门户网站
  • 网站建设结论温州发生的重大新闻
  • 深圳南山区住房和建设局网站手机+显示器自适应wordpress+主题
  • 深圳福永网站建设公司分类信息网站开发
  • 网站开发众筹做ppt音乐模板下载网站
  • 做网站一个月赚多少东莞seo黑帽培训
  • 宠物狗网站建设分析宣传片拍摄思路
  • 萧江网站建设教育课程网站建设
  • 软件开发 系统开发 网站开发服务陕煤化建设集团铜川分公司网站
  • 海城网站设计数码公司网站建设调查
  • 涉县专业做网站小视频制作软件
  • 免费素材网站 可商用wordpress开启伪静态无法登陆
  • 大学生兼职网站开发wordpress怎么换语言
  • 网络网站知识appwordpress文章时间标签