JS原型对象

原型prototype


将函数定义在全局作用域中的缺点:

1.会污染全局作用域的命名空间,如:函数functionA(),那么在全局作用域中就不能再出现functionA这个命名了。

2.定义在全局作用域中不安全。

因此,就用到了主角----原型


1.所有的函数都有原型对象


2.当函数以构造函数的形式调用时,它所创建的对象中都会有一个隐含的属性__prototype__,来指向该函数的原型对象。

例:




3.原型对象相当于一个公共区域(变向的全局作用域),所有同一个类的实例都可以访问到这个原型对象,

    这样我们就可以将对象共有的内容,属性,方法,统一设置到原型对象中。


4.原型对象也有原型对象,通过__proto__访问


5.当我们访问对象的一个属性或方法时,


    它会先在对象自身中寻找,如果有则直接调用,

    如果没有则会去原型对象中找,有则调用,没有则继续在原型对象中的原型对象中找,如找到则直接调用。

例子:


总结:创建构造函数时,将共有的属性和方法统一添加到啊构造函数的原型对象中,省去了为没一个对象添加的繁琐,也不会影响到全局作用域。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值