构造函数和原型的导读

学习目标
1.能够使用构造函数创建对象
2.能够说出原型的作用
3.能够说出访问对象的规则
4.能够使用ES5新增的一些方法

1.1 构造函数和原型

创建对象的三种方式 
1.对象字面量 let obj  = {}
2,new Object() var obj = new Object()
3.自定义构造函数 function Guan() {console.log(123)}  let guan = new Guan()
构造函数是一中特殊的的函数,主要用来初始化对象,即为对象成员变量赋初始值,她总与new一起使用。我们可以把对象中的一些公告属性和方法抽取出来,然后封装到这个函数里面。

new 在执行时会做4件事情

1.在内存中创建一个新的空对象
2.让this 指向这个新对象
3.执行构造函数里面的代码,给这个新对象添加属性和方法
4.返回这个新对象(所有构造函数里面不需要return)

实例成员就是构造函数内部通过this添加的成员 ,只能通过实例化的对象来访问 ,不能通过构造函数访问实例成员
静态成员只能通过构造函数来访问,不能通过对象来访问
function Guan(name,age) {
    this.name = name
    this.age= age // 实例成员 构造函数内部通过this添加的成功
    this.say = function () {
        console.log('我会唱歌')
    }
}
Guan.sing = '唱歌' // 静态成员只能通过构造函数本身添加成员
let gsj = new Guan('guan',19)

构造函数的原型 prototype

每一个构造函数都有一个prototype 属性
一般情况下,公共的属性点定义在构造函数里面 方法放在原型对象上


对象原型 __proto__

对象都会有一会属性__proto__指向构造函数的prototype原型对象,之所有我们原型对象可以使用构造函数的peototype原型对象的属性和方法,就时因为对象的有__prpto__原型的存在。
  • __proto__对象原型和原型对象prototpe 是等价的
__proto__对象原型的意义就在于对象的查找机制提供一个方向,或者说一条路线。但是她是一个费标准的属性,因此在实际开发中,不可使用这个属性,她只是内部指向原型对象prototype
全部评论

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务