原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性constructor,它指向函数对象 给原型对象添加属性(一般都是添加方法) 作用:函数的所有实例对象自动拥有原型中 ...
分类:
编程语言 时间:
2019-07-31 13:30:46
阅读次数:
96
继承是oo语言中一个最为人津津乐道的概念。ECMAScript支持实现继承,而且实现继承只要是靠原型链来实现的·原型链 其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 简单回顾一个构造函数,原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实... ...
分类:
其他好文 时间:
2019-07-29 10:19:56
阅读次数:
132
七. 函数对象 (复习一下前面的知识点) 所有函数对象的proto都指向Function.prototype,它是一个空函数(Empty function) Number.__proto__ Function.prototype // true Number.constructor == Funct ...
分类:
其他好文 时间:
2019-07-29 10:12:15
阅读次数:
85
四. __proto__ JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__ 的内置属性,用于指向创建它的构造函数的原型对象。 对象 person1 有一个 __proto__属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototy ...
分类:
其他好文 时间:
2019-07-29 09:57:44
阅读次数:
98
前言 对象是 JS 中基本类型之一,而且和原型链、数组等知识息息相关。不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题。 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来。所以无论用什么办法,必然绕不开开辟一块新的内存空间。 通常有下面两种方法实现深拷贝: 迭代递归法 序列化反序 ...
分类:
Web程序 时间:
2019-07-26 14:46:17
阅读次数:
156
一、typeof判断数据类型(判断数组跟对象都返回object) 二、instanceof判断对象的原型链是否是指向构造函数的prototype var arr = [1,2,3,1]; console.log(arr instanceof Array)//true 三、对象的constructor ...
分类:
编程语言 时间:
2019-07-23 15:14:21
阅读次数:
102
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明 var o1 = {}; var o2 =new Object(); var o3 = new f1(); funct ...
分类:
其他好文 时间:
2019-07-23 09:19:31
阅读次数:
79
使用Object.create(null)产生的对象是一个没有原型的对象,相对于直接使用 {} 产生的对象,后者会产生一个原型链接到Object.prototype,前者相当于一个纯净的map不会有Object.prototype的属性或者方法污染,自然前者遍历的时候也不需要使用hasOwnProp... ...
分类:
其他好文 时间:
2019-07-22 13:45:12
阅读次数:
75
一、什么是原型链? __proto__属性:是对象所独有的属性。__proto__属性都是由一个对象指向一个对象(原型对象)的,它的作用就是当访问一个对象属性的时候,如果这个对象不存在这个属性,那个就会去它的__proto__属性所指的对象里去找(如果没有就一直往上找,知道原型链的顶端null),如 ...
分类:
其他好文 时间:
2019-07-19 11:00:31
阅读次数:
121
一、原型链继承【子构造函数的原型对象是父构造函数的实例】【对原型属性和方法的继承】1、每个构造函数【prototype】都有一个原型对象,原型对象中都包含一个指向构造函数的指针【constructor】,而实例都包含一个指向原型对象的内部指针【__proto__】。当原型对象等于另外一个类型的实例即 ...
分类:
Web程序 时间:
2019-07-18 23:57:05
阅读次数:
266