js--构造函数

发布于:2024-03-13 ⋅ 阅读:(91) ⋅ 点赞:(0)

创建对象的方式:

        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、构造函数中函数会多次创建,占用内存 

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到