没有合适的资源?快使用搜索试试~ 我知道了~
其实面向对象是一种编程思想,不用想的太复杂,可以想这个问题,把大象放进冰箱需要几步?面向的对象是什么,就是:打开冰箱放进大象关上冰箱,而面向过程就是这个事件的步骤,分步骤一步步实现,这就是面向过程。 需要实现拿出大象,只需要把“放进” 修改成“拿出”的步骤就可以了。 这就是面向过程,面向对象就是整个事件。 1.关键字createPerson和prototype以及__proto__ 原型对象的作用和语法 function createPerson(){ } createPerson.prototype.name = admin; createPerson.prototyp
资源详情
资源评论
资源推荐
面向对象的总结面向对象的总结
其实面向对象是一种编程思想,不用想的太复杂,可以想这个问题,把大象放进冰箱需要几步?面向的对象是什么,就是:打开冰箱放进大象关上冰箱,而面向过程就是这个事件的
步骤,分步骤一步步实现,这就是面向过程。
需要实现拿出大象,只需要把“放进” 修改成“拿出”的步骤就可以了。
这就是面向过程,面向对象就是整个事件。
1.关键字关键字createPerson和和prototype以及以及__proto__
原型对象的作用和语法原型对象的作用和语法
function createPerson(){
}
createPerson.prototype.name = "admin";
createPerson.prototype.show = function(){
console.log("hello");
}
console.log(createPerson.prototype);
var p1 = new createPerson();
console.log(p1);
console.log(p1.__proto__);
最后会发现__proto__身上也能找到prototype添加的属性和方法。由此可以证明
createPerson.prototype 这个就叫原型对象。
那这个到底有什么用呢?首先要清楚原型对象也是一个对象,也可以向这个原型对象添加属性和方法。
而添加到原型对象身上的属性和方法并不是给函数用,而是给将来被new出来的实例的隐式原型使用。
p1.__proto__就是p1的隐式原型。
实例身上的隐式原型,是为了标记当前实例的来源函数的原型对象。
那么就可以得出
p1.__proto__ == createPerson.prototype
他们两个之间是一样的。
实例和类之间的关系就是这样子。
通过new得到的对象,也叫实例
被new执行的构造函数,也叫类
实例是类的具象化
类是实例的抽象化
如果有点难懂,可以看一下我上面举得那个例子:实例就是大象关进冰箱,类就是实现这个事件的步骤。这样就很好理解了。
接下来就是总结他们之间的关系了,他们之间的关系就是原型链。
一般情况下,一个对象类型的数据,必然会有一个隐式原型,这个隐式原型作为当前对象的父级存在
当前对象属性或方法的读写规则
读(获取)
如果一个对象不具有某个属性或方法,会顺着隐式原型找父级,找到了,可以直接使用,找不到,继续顺着隐式原型向上找父级,找不到,一直向上,直到顶端的Object,如果还是没有,那么抛出undefined,只要在某一层
找到了,那么就停止
子无,找父,父无,找父之父,......
全无,undefined
某处找到,即停止
写(设置)
不往上找,直接写在当前位置,不会向上设置
只能改写自身,不能改写父级
既然叫原型链肯定有图片的啦,接下来看一下图片就可以知道他们之间的关系了。
其实那个constructor是一个补充,并不是必须要通过constructor。
只是如果你不知道是指向哪个构造函数时,可以用他来知道。
weixin_38594252
- 粉丝: 7
- 资源: 920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0