js--构造函数

创建对象的方式:

        1、利用对象字面量{}创建

const arr = {
    name: 'tom',
    age: 18
}

        2、利用js内置构造(Object,Array,String,Number)函数

var obj = new Object() //创建一个空的对象
obj.uname = 'tom'
obj.age = 20
console.log(obj) // {uname: 'tom', age: 20}

        3、利用自定义的构造函数

function Pig(name,age) {
  this.name = name
  this.age = age
}
const arr = new Pig('john',12)
console.log(arr) // {name: 'john', age: 12}

构造函数是一周你那个特殊的函数,主要用来创建对象,可以通过构造函数快速创建多个类似对象。构造函数的首字母要大写,构造函数需要与new一起使用。

使用new关键字调用函数的行为被称为实例化。

实例化构造函数的时候,没有参数可省略()。

实例化执行过程:

        1、创建新的空对象

        2、构造函数this指向新对象

        3、执行构造函数代码

        4、返回新对象 

实例成员:实例对象中的属性和方法(实例属性和实例方法)

静态成员:构造函数的属性和方法(静态属性和静态方法)

内置构造函数Object--用于创建普通对象

        1、Object.keys(obj)

                获取对象中所有属性,返回的是一个数组

        2、Object.values(obj)

                获取对象中所有属性值,返回的是一个数组

        3、Object.assign(obj)

                拷贝对象

var obj = new Object() //创建一个空的对象
obj.uname = 'tom'
obj.age = 20
console.log(obj) // {uname: 'tom', age: 20}
console.log(Object.keys(obj)) // ['uname', 'age']
console.log(Object.values(obj)) // ['tom', 20]
console.log(Object.assign(obj)) // {uname: 'tom', age: 20}
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(returnedTarget) // {a: 1, b: 4, c: 5}

内置构造函数Array--用于创建数组

        1、Array.map()

                迭代数组,返回新数组

const list = ['tom',18]
const str = list.map(item => {
  return item + '和'
}).join(',')
console.log(str) // tom和,18和

        2、Array.filter()

                筛选数组


const list = [1,2,3,4,5,6,5]
console.log(list.filter(item=> item < 4)) // [1, 2, 3]

        3、Array.reduce 

                数组元素求和

const list = [1,2,3,4,5]
console.log(list.reduce((a,b) => a + b)) // 15
const list = [1,2,3,4,5]
console.log(list.reduce( function(a,b) { return a+b }, 10)) // 25

        4、Array.forEach()

                遍历数组

const list = ['tom',18]
list.forEach(item => {
  console.log(item) // tom 18
})

构造函数体现了面向对象的封装特性。

构造函数存在的问题:

        1、浪费内存

        2、构造函数中函数会多次创建,占用内存 

相关推荐

  1. js--构造函数

    2024-03-14 00:36:02       24 阅读
  2. vue.extend解决vue页面转构造函数暴露js供全局使用

    2024-03-14 00:36:02       6 阅读
  3. 【Flutter】dart构造函数、工厂构造函数

    2024-03-14 00:36:02       32 阅读
  4. 原型 / 构造函数 / 实例

    2024-03-14 00:36:02       35 阅读
  5. C++ 拷贝构造函数

    2024-03-14 00:36:02       40 阅读
  6. C++ 拷贝构造函数

    2024-03-14 00:36:02       34 阅读
  7. 【C++】构造函数

    2024-03-14 00:36:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 00:36:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 00:36:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 00:36:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 00:36:02       18 阅读

热门阅读

  1. 前端各框架、优缺点及应用场景

    2024-03-14 00:36:02       20 阅读
  2. Python互斥锁实例(包含超时解锁)

    2024-03-14 00:36:02       20 阅读
  3. 深入理解Spring的ApplicationContext:案例详解与应用

    2024-03-14 00:36:02       21 阅读
  4. js小知识

    2024-03-14 00:36:02       23 阅读
  5. 子查询

    2024-03-14 00:36:02       24 阅读
  6. JenKins 中的new Item各个选项应该怎选择

    2024-03-14 00:36:02       20 阅读
  7. HAProxy适配openGauss使用指导书

    2024-03-14 00:36:02       22 阅读
  8. 在Rust中,探索word到pdf的转换

    2024-03-14 00:36:02       23 阅读
  9. 英语阅读挑战

    2024-03-14 00:36:02       22 阅读
  10. 华为机试题-字符串压缩

    2024-03-14 00:36:02       21 阅读
  11. 测开面经学习笔记

    2024-03-14 00:36:02       19 阅读
  12. C++进阶学习

    2024-03-14 00:36:02       21 阅读