prototype和--proto--
JS中、万物皆对象!主要分为: 宿主对象(浏览器对象)、内置对象、自定义对象!
:Window、DOM、BOM等;
:JavaScript提供的如:Array、Boolean、Date、Function、
Global、Math、Number、Object、RegExp、String以及各种错误
类对象,包括Error、EvalError、RangeError、ReferenceError、
SyntaxError和TypeError;
:开发人员自己定义的对象 const obj = {}/ const obj = new Object();
另一方面也可分为: 普通对象 和 函数对象(通过new Function()创建的对象都是函数对象);
/*
每个对象都有_ proto _(两横)属性 ,但是只有函数对象才有prototype属性
*/
一、原型对象之理解:
在 javascript中。创建一个对象是 都会有一个预定属性,其中每个函数对象都有一个prototype 属性,该属性指向函数的原型对象;
/*
*1、Person.prototype 【原型对象--主要作用是用于继承】
*2、在上面我们给 A 添加了属性和方法:name、age、job、sayName。其实它还有一个默认
的属性:constructor
*3、在默认情况下,所有的都会自动获得一个 constructor(构造函
数)属性;这个属性指向 prototype 属性所在的函数(Person);
即: Person.prototype.constructor == Person
*/
二、_ proto _(双横)之理解:
每个对象都有_ proto 属性,用于指向自身构造函数的原型对象;即:
person1.- -proto _ == Person.prototype
三、构造函数之理解:
构造函数和实例:
Person是构造函数、而person1和person2都是构造函数Person的实例;这两个实例都有一个共同的(构造函数)属性(constructor)就像一个指针一样 指向Person
persoin1.constructor = Person