JavaScript实例、prototype、_proto_、construtor

1、实例

  • 何为实例,可以理解为实际存在的例子;
  • 如果想知道一个对象是否是另一个对象的实例,最简单有效的方法就是使用instanceof操作符,该操作符能确定左侧的对象是否是右侧类的实例,返回一个boolean值;
  • 如使用该操作符检测基本类型的值,则始终会返回 false,因为基本类型不是对象。

1、js中所有对象都是Object的实例(因为Object是一个基本对象类型,其他所有对象都从 Object 继承了基本的行为)

/*控制台输入*/
Function instanceof Object;				//true
Array instanceof Object//true
String instanceof Object//true
Math instanceof Object;					//true

window instanceof Object//true
Element instanceof Object//true
screen	instanceof Object;				//true
...

2、js中所有函数(包含内置构造函数)都是Function的实例
例如:Object、Array、Date、Function、RegExp、Error、EvalError 、RangeError 、ReferenceError 、SyntaxError 、TypeError、URIError 、Boolean、Number、String都是内置构造函数;

/*控制台输入*/
var fun=function (){}
fun instanceof Function;			//true

Object instanceof Function;				//true
Array instanceof Function;				//true
Error instanceof Function;				//true
Number instanceof Function;				//true
RegExp instanceof Function;				//true
...

3、js中所有手动创建的对象都是对应类型的实例,同样也是Object的实例;

/*控制台输入*/
var obj={};
obj instanceof Object;			//true

var arr=[];
arr instanceof Array;			//true
arr instanceof Object;			//true

var str=new String("abcdef");
str instanceof String;			//true
str instanceof Object;			//true

var str2="abcdef";				//str2是基础数据类型,不是对象
str2 instanceof Array;			//false
str2 instanceof Object;			//false

var num=new Number(100);
num instanceof Number;			//true
num instanceof Object;			//true

...

2、prototype(原型对象)

  • 所有构造函数都拥有一个prototype属性,里面存储了用于共享的属性和方法;
  • 每一个javascript对象(除null外)都和一个prototype属性关联;

3、constructor(构造器)

  • 每个原型对象都有一个constructor属性,用于指向原型对象的构造函数;

4、_proto _(原型指针)

  • 每个实例对象上都有一个_proto_属性,用于指向产生当前实例的prototype原型对象;
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值