美文网首页
原型与原型链

原型与原型链

作者: 陈舒艺 | 来源:发表于2019-01-20 16:47 被阅读0次
1.全局对象window

ECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全局对象(浏览器先存在的)
window 就是一个哈希表,有很多属性。
window 的属性就是全局变量。
a)一种是 ECMAScript 规定的

  • global.parseInt
  • global.parseFloat
  • global.Number
  • global.String
  • global.Boolean
  • global.Object
    b)一种是浏览器自己加的属性
  • window.alert
  • window.prompt
  • window.comfirm
  • window.console.log
  • window.console.dir
  • window.document
  • window.document.createElement
  • window.document.getElementById
2.全局函数
  • Number
    var n = new Number(1) 创建一个 Number 对象
  • String
    var s = new String('hello') 创建一个 String 对象
  • Boolean
    var b = new Boolean(true) 创建一个 Boolean 对象
  • Object
    var o1 = {}
    var o2 = new Object()
    o1和o2没区别
    o2!===new Object(),除非地址一样;


    内存图
3. Object.prototype.__ proto__

Object.prototype.__ proto__属性是一个访问器属性(一个getter函数和一个setter函数), 暴露了通过它访问的对象的内部[[Prototype]](一个对象或 [null]值)。

  • 重要公式
    var 对象=new 函数()
    对象.__ proto__=函数.prototype;

  • exg:
    var number = new Number()
    number.__ proto__ = Number.prototype
    Number.__ proto__ = Function.prototype // 因为 Number 是 Function 的实例


    图片
  • __ proto__&&prototype
    String.protype是String的公用属性的引用;(对象属性)
    s.__ proto__是String的公用属性的引用;(要用的函数属性)

4.原型&&原型链
  • MDN解释
    JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为何一个对象会拥有定义在其他对象中的属性和方法。
  • 方方解释
    所有对象都有 toString 和 valueOf 属性,那么我们是否有必要给每个对象一个 toString 和 valueOf 呢?
    明显不需要。
    JS 的做法是把 toString 和 valueOf 放在一个对象里(暂且叫做公用属性组成的对象)
    然后让每一个对象的 proto 存储这个「公用属性组成的对象」的地址。
    原型就是共有属性

5.其他小知识

1.charCodeAt(x)字符编码
2.a.contact(b)连接字符串
3.a.slice(num1,num2)num1表示位置,num2表示数量;
4.a.replace('a1','a2')用a1替代字符串a的a2;
5.instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
object instanceof constructor;object要检测的对象.constructor某个构造函数
6.for...in语句以任意顺序遍历一个对象的[可枚举属性]
7.forEach() 方法对数组的每个元素执行一次提供的函数。

相关文章

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 2019-01-28

    原型与原型链

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • JavaScript 面向对象第一篇

    1.原型链 ---- (实例对象与原型之间的连接 叫做原型链) 2. hasOwnproperty ----(看是...

  • 原型与原型链以及继承

    今天复习下原型与原型链的知识,以及记录新学的继承知识点。 知识点纲要 原型与原型链 es5与es6继承 什么是原型...

  • JavaScript深入理解this关键字(一)

    摘要 最近在公司需要做培训,我打算把JavaScript中的原型与原型链讲给大家。但我在梳理原型与原型链的时候发现...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 原型链&instanceof关键字

    1.原型链&instanceof关键字 简单说明 原型链 与 instanceof 作用原理 1.原型链 1...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

网友评论

      本文标题:原型与原型链

      本文链接:https://www.haomeiwen.com/subject/ohezdqtx.html