构造函数和原型的导读

学习目标
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
全部评论

相关推荐

科大讯飞 飞凡计划-研发方向 年薪42w左右
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务