介绍JavaScript编程语言里的对象

对象

在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、 函数等。

对象的应用场景:描述复杂的事务

  • 对象是由属性方法组成的。
    • 属性:事物的特征,在对象中用属性来表示(常用名词)
    • 方法:事物的行为,在对象中用方法来表示(常用动词)

创建对象的三种方式

在 JavaScript 中,现阶段我们可以采用三种方式创建对象(object):

对象:一组数据的集合,属性和方法的集合,对这个对象进行描述。
对象的创建:
	var 对象名 = {
    
      属性:属性值,
      方法:函数
	}
对象的访问:
	对象名.属性  对象名.方法()   
	对象名[‘属性’] 对象名[‘方法’]()
创建空对象再去赋值:
	var obj = {
     }
    var obj = new Object()
    obj.name = 'zs'
    obj.sex = '男'
    obj.sayhi = function () {
    
        alert('sayhi')
    }
创建有内容的对象:两种方法
	var obj = {
    
        name: 'zs',
        sex: 'nan',
        sayhi: function () {
    
            alert('sayhi')
        }
    }
    var obj = new Object({
    
        name: 'zs',
        sex: 'nan',
        sayhi: function () {
    
            alert('sayhi')
        }
    })

  • 利用字面量创建对象
    • 对象字面量:就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法。 { } 里面采取键值对的形式表示
    • 键:相当于属性名
    • 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)
  • 对象的调用:
    • 对象里面的属性调用 : 对象.属性名 ,console.log(obj.uname); 这个小点 . 就理解为“ 的 ”
    • 对象里面属性的另一种调用方式 : 对象[‘属性名’],注意方括号里面的属性必须加引号console.log(obj['age']); 我们后面会用
    • 对象里面的方法调用:对象.方法名() ,obj.teC() 注意这个方法名字后面一定加括号 ,或者另一种obj['address']()
    var obj = {
    
        uname: '可可',
        age: 5,
        type: '阿拉斯加',
        teC: function() {
    
            return '吃'
        },
        address: function() {
    
            return '中国'
        }
    }
    console.log(obj.uname);
    console.log(obj['age']);
    console.log(obj.teC());
    console.log(obj['address']());
//结果:可可 5 吃 中国

  • 利用 new Object 创建对象
    • 跟我们前面学的 new Array() 原理一致
    • Object() :第一个字母大写
    • new Object() :需要 new 关键字
    • 使用的格式:对象.属性 = 值;
    • 我们是利用 等号 = 赋值的方法 添加对象的属性和方法
    • 每个属性和方法之间用 分号结束
    var obj = new Object();
    obj.uname = '鸣人';
    obj.age = 33;
    obj.skill = function() {
    
        console.log('影分身');
    }
    console.log(obj['uname']);
    obj.skill()
  • 利用构造函数创建对象

    • 构造函数 :是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 运算符一起 使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。
    • 在 js 中,使用构造函数要时要注意以下两点:
      • 构造函数用于创建某一类对象,其首字母要大写
      • 构造函数要和 new 一起使用才有意义
  • 为什么需要构造函数:

    • 通过构造函数创建的对象具有相同的属性与方法
    • 构造函数属于函数的一种
    • 通过构造函数创建的对象,成为实例
  • 构造函数语法格式:

    •     function 构造函数名() {
              
              this.属性 =;
              this.方法 = function() {
              }
          }
          new 构造函数名();
      
      
    
    - ```js
          function Star(name, age, sex) {
              this.name = name
              this.age = age
              this.sex = sex
          }
          var ldh = new Star('刘德华', 20, '男')
          console.log(ldh.name);
          console.log(ldh['name']);
      //我们只要new Star() 调用函数就创建一个对象 zxy  {}
          var zxy = new Star('张学友', 34, '男')
          console.log(zxy.sex);
          console.log(zxy);
    
    
  • 构造函数注意点:

    • 构造函数约定首字母大写。
    • 函数内的属性和方法前面需要添加 this ,表示当前对象的属性和方法
    • 构造函数中不需要 return 返回结果。
    • 如果return的是简单数据类型return 'abc',不影响构造函数的返回值
    • 如果return的是复杂数据类型return {name: 'ldh'} ,会影响构造函数的返回值
    • 当我们创建对象的时候,必须用 new 来调用构造函数。

new关键字(重要)

  • new 在执行时会做四件事情:
    • 在内存中创建一个新的空对象。
    • 让 this 指向这个新的对象。
    • 执行构造函数里面的代码,给这个新对象添加属性和方法。
    • 返回这个新对象(所以构造函数里面不需要return)。

遍历对象for in

for (变量 in 对象){
    }
        // 遍历对象 
        var obj = {
    
                name: '老师',
                age: 18,
                sex: '男',
                fn: function() {
    }
            }
            // for in 遍历我们的对象
            // for (变量 in 对象) {
    

        // }
        for (var k in obj) {
    
            console.log(k); // k 变量 输出  得到的是 属性名
            console.log(obj[k]); // obj[k] 得到是 属性值

        }
        // 我们使用 for in 里面的变量 我们喜欢写 k  或者  key

内置对象

  • JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象

  • 内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)

  • 内置对象最大的**优点 **就是帮助我们快速开发

  • JavaScript 提供了多个内置对象:Math、 Date 、Array、String等

查文档

MDN: https://developer.mozilla.org/zh-CN/

  • 如何学习对象中的方法
    • 查阅该方法的功能
    • 查看里面参数的意义和类型
    • 查看返回值的意义和类型
    • 通过 demo 进行测试

Math对象

    console.log(Math.PI);
    console.log(Math.max(1, 33, 44));
    // 取绝对值
    console.log(Math.abs(-5)); //5

    // 向下取整(往小了取)(地板函数)
    console.log(Math.floor(3.4)); //3
    console.log(Math.floor(-5.5)); //-6

    // 向上取整(往大了取)(天花板函数)
    console.log(Math.ceil(1.2)); //2

    // 四舍五入
    console.log(Math.round(5.5)); //6

    // 注意: Math.round 遇到 .5 的情况则往大了取
    console.log(Math.round(-1.5)); //-1
    console.log(Math.round(-3.5)); //-3
    console.log(Math.round(-5.4)); //-5
    console.log(Math.round(7.6)); //8

封装自己的数学对象 :

    var myMath = {
    
        PI: 3.1415926,
        max: function() {
    
            var max = arguments[0]
            for (i = 1; i < arguments.length; i++) {
    
                if (arguments[i] > max) {
    
                    max = arguments[i]
                }
            }
            return max
        },
        min: function(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殿君不是殿军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值