浅谈JS对象的那些事

  • 更改属性的属性值方法:先调用属性,在等号赋值 obj.age = 18888

  • 增加新的属性和属性值:使用点语法或者[]方法直接定义新属性,等号赋值 obj.height = 187

  • 删除一条属性:使用delete关键字,空格后面加属性调用 delete obj.age

new Object() 方法创建对象

=============================================================================

  • Object() 构造函数,是一种特殊的函数。主要用来创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中

    1. 构造函数用于创建一类对象,首字母要大写

    2. 构造函数要和new一起使用才有意义


// new Object() 创建新对象

var nObj = new Object();    // 创建了一个新的空的对象

// 添加属性和方法

nObj.name = "SL";

nObj.age = 18;

nObj.sayHi = function () {

    console.log("你好")

};

// 调用

console.log(nObj);



new在执行时会做四件事情
  • new会在内存中和创建一个新的空对象

  • new会让this指向这个新的对象

  • 执行构造函数 目的:给这个新对象加属性和方法

  • new会返回这个新对象

工厂函数方法创建对象

====================================================================

如果要创建多个类似的对象,可以将new Object() 过程封装到一个函数中,将来调用函数就能创建一个对象,相当于一个生产对象的函数工厂,用来简化代码


// 工厂方法就是相当于对new Object() 方法的一个封装

function createObj (name, age) {

    // 创建一个空对象

    var cObj = new Object();

    // 添加属性和方法,属性可以接受参数的值

    cObj.name = name;

    cObj.age = age;

    cObj.sayHi = function () {

        console.log("你好")

    };

    // 将对象作为函数的返回值

    return cObj;

}

// 相互创建一个对象可以调用工厂函数

var c1 = createObj("zs", 18);

var c2 = createObj("ls", 28);

// 输出

console.log(c1);

console.log(c2);



自定义构造函数创建对象

=====================================================================

  • 比工厂方法更加简单

  • 自定义一个创建具体对象的构造函数,函数内部不需要new一个构造函数的过程,直接使用this代替对象进行属性和方法的书写,也不需要return一个返回值

  • 使用时,利用new关键字调用自定义的构造函数即可

  • 注意:构造函数的函数名首字母需要大写,区别于其他普通函数名


// 自己定义一个构造函数

function Obj(name, age) {

    // 不需要使用new一个新对象 用this替代将来创建的新对象

    this.name = name;

    this.age = age;

    this.sayHi = function () {

        console.log("你好")

    }

}

// 使用new调用构造函数

var o1 = new Obj("zs", 18);

var o2 = new Obj("ls", 28);



遍历对象方法

================================================================

  • for in 循环也是循环的一种,专门用来遍历对象,内部会定义一个k变量,k变量在每次循环时会从第一个开始接收属性名,一直接收到最后一条属性名,执行完后跳出循环

  • 简单的循环遍历:输出每一项的属性名和属性值


for (var k in obj) {

    console.log(k + "属性的属性值是" + obj[k]);

}



简单数据类型和复杂数据类型

=======================================================================

两者的区别
  • 基本类型又叫做值类型,复杂类型又叫做引用类型

    • 值类型:简单数据类型,基本数据类型,在存储时,变量中存储的是值本身,因此叫做值类型

    • 引用类型:复杂数据类型,在存储时,变量中存储的仅仅是地址(引用),因此叫做引用数据类型

堆和栈
  • 栈:由操作系统自动分配释放,存放在函数的参数值,局部变量的值等

  • 堆:存储复杂类型(对象)一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收

简单数据类型在内存中的存储

=======================================================================

变量中如果存储的是简单类型的数据,那么变量中存储的是值本身,如果将变量赋值给另一个变量,是将内部的值复制一份给了另一个变量,两个变量之间没有联系,一个变化,另一个不会同时变化


var a = 5;

var b = a;

a = 10;

console.log(a);

console.log(b);



复杂数据类型在内存中的存储

=======================================================================

如果将复杂类型的数据赋值给一个变量,复杂类型的数据会在内存中创建一个原型,而变量中存储的是指向对象的一个地址,如果将变量赋值给另一个变量,相当于将地址复制一份给了新的便利,两个变量的地址相同,指向的是同一个原型,不论通过那个地址更改了原型,都是在原型上发生的更改,两个变量下次访问时,都会发生变化


var p1 = {

    name: "zs",

    age: 18

}

var p = p1; // p1将内部存储的指向对象原型的地址复制给了 P

// 两个变量之间是一个联动的关系,一个变化会引起另一个变化

p.name = "ls";

console.log(p);

console.log(p1);



最后前端到底应该怎么学才好?

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。

不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 25
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
表单对象、值对象和持久化对象是软件开发中常见的概念,它们在不同的场景下有着不同的作用。 表单对象是指用于表示表单数据的对象,通常包含了表单中所有的输入项以及它们对应的值。表单对象通常用于在用户提交表单之前对表单数据进行验证、格式化等操作,以保证数据的正确性和完整性。在后端处理表单数据时,表单对象可以方便地将表单数据转换为其他类型的对象,如值对象或持久化对象。 值对象是指用于表示某个值的对象,通常包含了该值的各种属性和方法。值对象通常用于封装一些常用的、复杂的数据类型,如日期、时间、金额等,以便于在代码中使用和管理。值对象通常是不可变的,即一旦创建就不能修改,这样可以避免在不同地方对同一个对象进行修改而导致数据不一致的问题。 持久化对象是指用于表示存储在数据库中的数据的对象,通常包含了数据库表中的各个字段以及它们对应的值。持久化对象通常用于在应用程序和数据库之间进行数据交换。在应用程序中,持久化对象通常是通过ORM(对象关系映射)框架来生成和管理的,ORM框架可以将持久化对象与数据库表进行映射,从而方便地进行数据的增删改查操作。 总之,表单对象、值对象和持久化对象都是软件开发中常见的概念,它们在不同的场景下有着不同的作用,开发人员需要根据具体的需求来选择使用哪种对象类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值