我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

前端-王卓凡-20230524

[复制链接]
王卓凡 发表于 2023-6-13 18:10:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本帖最后由 王卓凡 于 2023-6-13 18:12 编辑

面向对象
  • 面向过程
  • 面向对象 - OOP

对象的创建方式
  • new Object
  • {}
  • 构造函数

工厂模式function createUser(uname, uage) {
  var user = new Object()
  user.uname = uname
  user.uage = uage
  user.show = function () {
    console.log(this.uname + " " + this.uage)
  }
  return user
}

var u1 = createUser('张三', 12)
u1.show()
var u2 = createUser('李四', 15)
u2.show()
构造函数(constructor)
ES6之前没有类的概念。
构造函数类似是一个模板,使用这个模板创建具体的对象。
成员:
1.实例成员:只有实例化的对象才能使用
2.静态成员:只有构造函数才能使用
function User(uname, uage) {
  this.uname = uname
  this.uage = uage
  this.show = function () {
    console.log(this.uname + " " + this.uage)
  }
}
var u1 = new User('张三', 10)
u1.show()
var u2 = new User('李四', 20)
u2.show()
// instanceof运算符返回一个布尔值,表示对象是否为某个构造函数的实例
console.log(u1 instanceof User) //true
console.log(u1 instanceof Dog) //false
console.log(u1.show === u2.show) //false,存在浪费内存的问题

关键字new 在代码执行经历的过程:
1.在内存中创建一个空的对象 - {}
2.确定this指向,指向这个空对象
3.构造函数内部代码的执行,给这个空对象添加属性和方法
4.返回这个新的对象 - 内部自动执行return

原型对象
每个构造函数都有一个原型对象(prototype),它指向另一个对象。我们一般会把构造函数的属性写在构造函数内部,公共的方法写在原型对象上,这样所有的实例对象就可以共享这些方法。
这样能更好的节约内存,提高代码的效率。

回复

使用道具 举报

关注0

粉丝0

帖子47

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026