原型....一

1.定义:

祖先作用,属性方法可以被执行
构造函数:大驼峰式
生产对象new
Person.prototype原型
Person在刚刚出生的时候,Person.prototype={}就定义好了
是一个空对象,是Person构造函数的对象的公共祖先,可以继承祖先的属性
person这个对象可以继承他的祖先Person.prototype的属性,但是直接输入person,不会显示出来。
在这里插入图片描述在这里插入图片描述
原型是Person制造出的所有对象的共有祖先:
在这里插入图片描述
在这里插入图片描述
对象自己设置的属性,先访问自己的,没有了再找原型的:
在这里插入图片描述

2.利用原型的特点和概念,可以提取共有属性

在这里插入图片描述

3.原型的增删改查

在这里插入图片描述
访问:如果对象没有,会通过原型找
修改:不能通过对象对原型改
这样相当于给对象加了一个属性
在这里插入图片描述
手动改原型:
在这里插入图片描述
增加:一定是通过Person.prototype.属性 增加属性
删除:电脑是傻子,没有的属性也能删返回true
在这里插入图片描述
原型的属性可以换一种方式写:
在这里插入图片描述

4.对象如何查看对象的构造函数 => constructor

在这里插入图片描述
在这里插入图片描述
car的constructor属性从哪来的?因为自己没定义,所以是继承来的,看原型的属性里有什么:
在这里插入图片描述
浅粉色字体是系统自己写的,隐式的,写的就是car的构造函数function Car()。

car的constructor就是他本身Car,可以改变.通过:Car.prototype={constructor:Person}(认贼作父)
在这里插入图片描述
在这里插入图片描述

5.对象如何查看原型——>隐式属性__proto__

每个对象都有一个__prto__属性,指向它的原型
new一个对象后,就会var this={},其实并不是空对象,里面有__prto__:构造函数名.prototype
在这里插入图片描述
__proto__的作用就是,当person里没有的属性,就通过__proto__在原型里找,起一个连接的作用

可以修改原型:
在这里插入图片描述
person.proto=obj了,person.name就会通过person.__proto__找到obj的属性name输出,不会再找Person.prototype里面的name "abc"了

在这里插入图片描述
Person.prototype.name的写法(“.”的写法)是在原有的基础上把属性值改了,这样的话,name会跟随变化而变化,因为只是值发生了变化
Person.prototype={},把原型改了,换了个新对象,换空间了。
//sunny
Person.prototype={}意味着Person.prototype换了一个空间,__proto__还是指向原来Person.prototype的那个空间,那个空间的name是sunny

可以类似于:obj1的name还是a
在这里插入图片描述
以下代码就是对上上图的简单描述:
在这里插入图片描述
另一种情况:
在这里插入图片描述
考虑预编译:function提上去,依次执行,最后cherry把sunny覆盖,答案是cherry

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值