JavaScript 对象中的方法

147 阅读2分钟

方法

创建默认对象
  1. JavaScript 中提供了一个默认的类 Object, 我们可以通过这个类来创建对象
  2. 由于我们是使用系统默认的类创建的对象, 所以系统不知道我们想要什么属性和行为, 所以我们必须手动的添加我们想要的属性和行为
  3. 如何给一个对象添加属性 对象名称.属性名称 = 值;
  4. 如何给一个对象添加行为 对象名称.行为名称 = 函数;

创建对象的三种方式

  1. new 一个, 往这个对象里加属性和方法

    let obj = new Object();
    obj.name = "fhs";
    obj.age = 23;
    obj.say = function () {
        console.log("hello world");
    }
    console.log(obj.name);
    console.log(obj.age);
    obj.say();
    
  2. 把个不完整的对象(甚至空对象也可)赋给变量

    let obj = {}; // let obj = new Object(); 的简写
    obj.name = "fhs";
    obj.age = 23;
    obj.say = function () {
        console.log("hello world");
    }
    console.log(obj.name);
    console.log(obj.age);
    obj.say();
    
  3. 直接把完整的对象赋给变量 (格式上有区别的哈, 这里是键值对的键和值以冒号隔开, 且键值对间以逗号隔开)

    let obj = {
        name: "fhs",
        age: 23,
        say: function () {
            console.log("hello world");
        }
    };
    console.log(obj.name);
    console.log(obj.age);
    obj.say();
    

注意点:

对象内方法只应该是函数赋给变量的形式, 以正统函数形式存在于对象内的函数不是对象的方法

函数与方法的区别

对象的行为称为方法而非函数

  1. 什么是函数? 函数就是没有和其它的类显示的绑定在一起的, 我们就称之为函数

  2. 什么是方法? 方法就是显示的和其它的类绑定在一起的, 我们就称之为方法

  3. 函数和方法的区别

    1. 函数可以直接调用, 但是方法不能直接调用, 只能通过对象来调用
    2. 函数内部的 this 输出的是 window, 方法内部的this输出的是当前调用的那个对象
  4. 无论是函数还是方法, 内部都有一个叫做 this 的东西

    this 是什么? 谁调用了当前的函数或者方法, 当前的 this 就是谁