方法
创建默认对象
- JavaScript 中提供了一个默认的类 Object, 我们可以通过这个类来创建对象
- 由于我们是使用系统默认的类创建的对象, 所以系统不知道我们想要什么属性和行为, 所以我们必须手动的添加我们想要的属性和行为
- 如何给一个对象添加属性 对象名称.属性名称 = 值;
- 如何给一个对象添加行为 对象名称.行为名称 = 函数;
创建对象的三种方式
-
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(); -
把个不完整的对象(甚至空对象也可)赋给变量
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(); -
直接把完整的对象赋给变量 (格式上有区别的哈, 这里是键值对的键和值以冒号隔开, 且键值对间以逗号隔开)
let obj = { name: "fhs", age: 23, say: function () { console.log("hello world"); } }; console.log(obj.name); console.log(obj.age); obj.say();
注意点:
对象内方法只应该是函数赋给变量的形式, 以正统函数形式存在于对象内的函数不是对象的方法
函数与方法的区别
对象的行为称为方法而非函数
-
什么是函数? 函数就是没有和其它的类显示的绑定在一起的, 我们就称之为函数
-
什么是方法? 方法就是显示的和其它的类绑定在一起的, 我们就称之为方法
-
函数和方法的区别
- 函数可以直接调用, 但是方法不能直接调用, 只能通过对象来调用
- 函数内部的 this 输出的是 window, 方法内部的this输出的是当前调用的那个对象
-
无论是函数还是方法, 内部都有一个叫做 this 的东西
this 是什么? 谁调用了当前的函数或者方法, 当前的 this 就是谁