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

深圳网站建设公司jsp杭州百度seo代理

深圳网站建设公司jsp,杭州百度seo代理,郑州市造价信息网官网,如何用手机开发游戏文章目录原型和原型链prototype、 __ proto __ 、constructor原型链原型方法instanceOfhasOwnPropertyObject.create()、new Object()总结原型和原型链 prototype、 __ proto __ 、constructor 首先我们看下面一段代码 // 构造函数Personfunction Person(name, age) {this.na…

文章目录

  • 原型和原型链
    • prototype、 __ proto __ 、constructor
    • 原型链
  • 原型方法
    • instanceOf
    • hasOwnProperty
    • Object.create()、new Object()
  • 总结


原型和原型链

prototype、 __ proto __ 、constructor

首先我们看下面一段代码

    // 构造函数Personfunction Person(name, age) {this.name = name;this.age = age;this.sayHello = function () {console.log('hello')}}// 给Person的原型上挂载属性和方法Person.prototype.sex = 'male'Person.prototype.sayName = function () {console.log(this.name);}// 实例化Person对象const person1 = new Person('Jack', 20);const person2 = new Person('Dave', 30);console.log(person1.__proto__ === Person.prototype ) // trueconsole.log(person1.__proto__ === person1.__proto__) // trueconsole.log(Person.prototype.constructor === Person) // true

在这段代码中,共做了三件事

  • 创建一个名为 Person 的构造函数,它接收 nameage 属性,同时 sayHello 方法
  • 给构造函数 Personprototype 挂载新的属性和方法
  • 创建 Person 的实例对象 person1 person2

查看打印结果:

    console.log(person1.__proto__ === Person.prototype ) // trueconsole.log(person1.__proto__ === person2.__proto__) // trueconsole.log(Person.prototype.constructor === Person) // true

结论

  • 构造函数有一个prototype原型对象, 原型对象里的constructor指向构造函数本身
  • 每个对象都有一个__proto__属性,并且指向它的构造函数的原型对象(prototype)

在这里插入图片描述

原型链

那么原型的存在到底有什么作用呢,其实就是一句话:对象不必存储所有的属性或方法,而可以通过原型层层向上查找,减少内存的占用

还是上面的例子,调用以下代码:

	person2.sayHello() // helloperson2.sayName()  // Dave

实例对象person2并没有直接定义方法sayName,但是它可以调用它的构造函数 Person 原型上的方法

在这里插入图片描述

接下来再加一行

	console.log(person2.toString()) // "[object Object]"

打印的结果为 “[object Object]”,说明person2实例对象是存在这个方法的,但是person2本身和它的构造函数都没有定义 toString 方法,显然,它是在原型链上找到的:

在这里插入图片描述

这条绿色的线就是 原型链

  • person2 实例对象本身没有toString方法,会顺着原型链找向它的构造函数Person的原型
  • Person 对象本身也没有toString方法,会继续顺着原型链找向它的构造函数Object的原型
  • 最终在Object的原型上找到了该方法,如果还没有找到,就会报null

原型方法

instanceOf

A instanceOf B 运算符用于检测A的原型链上是否存在构造函数B的 prototype属性,即沿着A的原型链向上寻找,能否找到B;能找到返回 true,否则返回 false。

    const arr = new Array(['a','b','c'])  console.log(person1 instanceof Person) // trueconsole.log(person1 instanceof Array)  // falseconsole.log(person1 instanceof Object) // trueconsole.log(arr instanceof Person)  // falseconsole.log(arr instanceof Array)   // trueconsole.log(arr instanceof Object)  // true

原型链的终点指向Object,因此js中有一句话:万物皆对象

hasOwnProperty

A.hasOwnProperty(B) 判断对象 A 本身是否有属性或对象 B。有则返回true,没有返回false,此方法不会沿着检查对象A的原型链寻找B

	 console.log(person1.hasOwnProperty('age')) // trueconsole.log(Person.hasOwnProperty('age'))  // falseconsole.log(Object.hasOwnProperty('age'))  // false

构造函数只有在实例化时才具备属性age

Object.create()、new Object()

  • var B = Object.create(A) 返回一个新对象B, B的原型指向A, 即B.__proto__ === A
  • var B = new Object(A)B===A
    const person3 = Object.create(person2)const person4 = new Object(person2)console.log(person3.__proto__ === person2, person3 === person2) // true falseconsole.log( person4 === person2) // true

当A为基本类型,var B = new Object(A)返回它本身,当A为空时,返回一个空对象

总结

原型和原型链

  • prototype、 __ proto __ 、constructor
  • 原型链

原型方法

  • instanceOf
  • hasOwnProperty
  • Object.create()、new Object()
http://www.hengruixuexiao.com/news/11062.html

相关文章:

  • 用微信小程序怎么做网站品牌关键词排名优化怎么做
  • 大型网站开发php框架福州网站开发公司
  • 网站建设 知乎磁力搜索引擎torrentkitty
  • wordpress中如何添加面包屑网站优化是什么意思
  • 瑞昌建站公司网络销售平台有哪些软件
  • 个人网站如何做淘宝客广州seo网站管理
  • 做外贸业务去哪些网站肥城市区seo关键词排名
  • 校园网站设计参考文献58同城如何发广告
  • 请问哪里可以做网站广告开户南京seo
  • 什么是市场营销什么是网络营销搜索引擎优化的主要工作有
  • 乐清建站公司烟台网络推广
  • wordpress搜图插件连云港网站seo
  • ps制作博客网站界面谷歌浏览器下载手机版app
  • 网站开发专业分析短视频代运营合作方案
  • 个人域名做邮箱网站汕头网站建设方案外包
  • 广州专业网站建设网页设计服务建网站需要哪些步骤
  • 做网站有什么软件吗seo查询优化
  • pcms网站开发怎么找平台推广自己的产品
  • wordpress博客软件搜索引擎优化宝典
  • 做网站之前要先购买服务器吗百度seo点击排名优化
  • 成都前几年网站建设公司网址大全是ie浏览器吗
  • 做视频解析网站违法不seo综合查询平台
  • 做兼职一般去哪个网站百度爱采购平台登录
  • 做网站做手机app要学什么软件今日头条军事新闻
  • 台州网站建设 网站制作 网站设计个人发布信息免费推广平台
  • 网站报名系统怎么做百度应用商店下载安装
  • 江苏苏州网站建设上海优化外包
  • 网页设计与网站建设实训目的培训网登录入口
  • 用discuz做的网站宁波seo外包推广排名
  • 微信公众号模板去哪找seo关键词快速排名前三位