美文网首页
原型与原型链

原型与原型链

作者: H_uan | 来源:发表于2018-09-04 23:04 被阅读0次

一、全局对象

  • 1、一种是 ECMAScript 规定的
    global.parseInt
    global.parseFloat
    global.Number
    global.String
    global.Boolean
    global.Object

  • 2、一种是浏览器自己加的属性
    window.alert
    window.prompt
    window.comfirm
    window.console.log
    window.console.dir
    window.document
    window.document.createElement
    window.document.getElementById


    图片全局对象.png

二、全局函数(简单类型与对象的区别)

Number,String,Boolean,Object

1、Number
  • 1、直接声明number(1)与New Number(1)的区别
var n1 = 1; 
var n2 = new Number(1);

n1与n2的区别:指向地址不同
图片1.png
图片2.png 图片3.png
  • 为何n1可调用toString等方法的原因:妙计


    图片.png
  • var n1 = 1;n1.toString()内存发生的过程:调用toSting方法的时候,就产生了一个临时temp对象,并有对象的所有属性

    图片4.png
  • ! 特别注意:(当前一句执行完,临时对象就抹杀掉)

var n=1;
n.xxx = 2;//产生一个临时对象temp(属性有xxx:2,执行完后,temp被抹杀掉),
打印:n.xxx = ?//结果是undefined (产生一个新的temp对象,取xxx对象)
2、String
var a1= 'sdfasffge'
var a2 = new String('asdfadf')
console.log(a2);//String 0: "a" ,1: "s" ,2: "d" ,3: "f"...length:7,__proto__: String { "" }
a2[0];//"a"
a1[0];//"s"
a2.anchor();//"<a name=\"undefined\">asdfadf</a>"
a2.charAt(0);//"a"
a2.charAt(1);//"s"
a2.charCodeAt(0);//97
a2.charCodeAt(1);//115
'a'.charCodeAt();//97 十进制的a
'a'.charCodeAt('0').toString(16);//"61" a的十六进制的unicode码
'   dfasdasd      '.trim();//dfasdasd   trim()去掉前后的空格
  a.concat(b);//连接起来
a.slice(0,2);//包前不包后
//了解更多,搜索string mdn
3、Boolean
var b1 = false;
var b2 = new Boolean(false);
if(b1){console.log(1)};//不执行
if(b2){console.log(2)};//2

五个false值:'0', NaN, ' ' ,null, undefined, false, 都是false值

所有对象都是truey
4、Object
var o1 = {};
var o2 = new Object();
o1===02//false

o1与o2完全没有区别,但并不是相等


图片对象内存图.png

新申明的对象都是不相等的,对应的内存地址不同,除非地址赋给另一个变量

必记:7种类型, 5个false值, 内存图

三、公用属性

__proto__

图片1.png
图片2.png
图片3.png 图片4.png
var o1 = {}
var o2 = new Object()
o1===o2;//false o1和o2是不同对象
o1.toString ===o2.toStiring();//true 公用属性

Number与Object区别


图片.png
  • 1、number:


    图片Number共有属性.png
图片Number与Object.png
图片普通对象与Object对象共有属性关系.png
原型就是共有属性也就是prototype
图片原型树.png
__proto__prototype的区别:
  • __proto__是对象的属性
  • prototype是函数的属性

公式:

var 对象 = new 函数()
对象.__proto__ === 函数.prototype

常用:

    var num = 1
    num.__proto__ === Number.prototype
    num.__proto__.__proto__ === Object.prototype
    num.__proto__.constructor === Number
    Number.prototype.__proto__ === Object.prototype
    Number.prototype.constructor === Number
    
    var fn = function(){}
    fn.__proto__ === Function.prototype
    fn.__proto__.__proto__ === Object.prototype
    fn.__proto__.constructor === Function
    Function.__proto__ === Function.prototype
    Function.prototype.__proto__ === Object.prototype
    Function.prototype.constructor === Function

    var array = []
    array.__proto__ === Array.prototype
    array.__proto__.__proto__ === Object.prototype
    array.__proto__.constructor === Array
    Array.prototype.__proto__ === Object.prototype
    Array.prototype.constructor === Array

    var bool = true
    bool.__proto__ === Boolean.prototype
    bool.__proto__.__proto__ === Object.prototype
    bool.__proto__.constructor === Boolean/**/
    Boolean.prototype.__proto__ === Object.prototype
    Boolean.prototype.constructor === Boolean

    var str = "String"
    str.__proto__ === String.prototype
    str.__proto__.__proto__ === Object.prototype
    str.__proto__.constructor === String
    String.prototype.__proto__ === Object.prototype
    String.prototype.constructor === String
    
    var object = {}
    object.__proto__ === Object.prototype
    object.__proto__.__proto__ === null
    object.__proto__.constructor === Object
    Object.prototype.__proto__ === null
    Object.prototype.constructor === Object

相关文章

  • 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/ceznwftx.html