js复习-day8

目录

面向对象开发

自定义构造函数

构造函数的书写

构造函数的不合理


面向对象开发

一种代码的开发方式,写代码的思想,是对面向过程的高度封装,高内聚,低耦合;

自定义构造函数

// 自己写一个构造函数
function CreateObj(name, age) {
    // 1. 会自动创建一个对象
    // 2. 手动向这个对象添加成员
    this.name = name
    this.age = age
    // 3. 自动返回这个创建的对象
}
// 当一个函数和 new 关键字连用的时候,函数内的 this 指向前面的变量

// 使用对象
const o1 = new CreateObj('张三', 18)
const o2 = new CreateObj('李四', 20)
console.log(o1, o2)
// => createObj {name: '张三', age: 18} createObj {name: '李四', age: 20}

构造函数的书写

  1. 使用的时候需要和 new 关键字连用
  2. 书写构造函数首字母大写(规范)
  3. 构造函数的调用必须和 new 关键字连用(规范),new 的作用是自动创建对象
  4. 构造函数内不要写 return,写了也没用(返回基本数据类型);构造函数没用(返回复杂数据类型)
  5. 函数内的 this ,调用时和 new 关键字连用,所以 this 会指向自动创建出来的对象,因为自动创建出来的对象会被 return 赋值给本次调用前面的变量,this 就指向 new 前面的变量,此过程叫做实例化过程,构造出来的对象叫做实例对象,this 指向当前实例

构造函数的不合理

当把方法写在构造函数体内的时候,随着创建对象的增加,会额外造成资源浪费;

解决:

  1. 把属性书写在构造函数体内
  2. 把方法书写在构造函数的 原型 上(prototype)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值