关于js高级的原型介绍

js高级————原型(prototype)

原型即对象的一个内部属性,原型和对象有一个紧密的联系。

如下图所示:

先创建一个对象

function Person(){},

function Person(){}中的prototype属性指向原型,而原型中的constructor属性指向Person。

如果想要给对象原型添加属性和方法可以通过Person.prototype.属性名=属性值;

Person.prototype.方法名=function(){};

var  p1=new Person();


新声明的对象的—prop—属性指向Person的原型先获取Person原型中的属性和方法再获取Person的属性和方法。


如果我们在声明新对象的时候给对象添加了属性和方法,我们在获取属性和方法时将先获取实例化对象里面的方法和属性,再获取Person的原型中的属性和方法,再获取Person中的方法和属性。


原型的指向检测:

我们可以用Person.prototype.isprototype(p1)检测p1是否指向Person

利用p1.constructor == Person可以判断p1的构造器是否指向Person对象,

利用p1.hasOwnProperty(属性名)可以判断该属性是否属于p1对象,


原型的重写:


function Person(){};

Person.prototype={

constructor:Person,

"name":"小明",

"age":18,

"say":function(){

alert("hello world");

}

}

var p1=new Person();

alert(p1.name)//输出“小明”,

我们可以通过这种方式对Person的原型进行重写。

如下图为原型重写图解:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值