一、存储在对象属性中的函数被称为“方法”。
二、当我们在代码中用对象表示实体时,就是所谓的面向对象编程(Object Oriented Programming),简称为 “OOP”。
方法简写
一、在对象字面量中,有一种更短的(声明)方法的语法:
// 这些对象作用一样user = {sayHi: function() {alert("Hello");}};// 方法简写看起来更好,对吧?let user = {sayHi() { // 与 "sayHi: function()" 一样alert("Hello");}};
1、如上所示,我们可以省略”function”,只写sayHi()。
2、说实话,这种表示法还是有些不同。在对象继承方面有一些细微的差别,但目前它们并不重要。在几乎所有的情况下,较短的语法是首选的。
方法中的 “this”
【见】this#方法中的“this”:https://www.yuque.com/tqpuuk/yrrefz/gcb2wp
构造器中的方法
一、使用构造函数来创建对象会带来很大的灵活性。构造函数可能有一些参数,这些参数定义了如何构造对象以及要放入什么。
二、我们不仅可以将属性添加到this中,还可以添加方法。
【示例1】下面的new User(name)用给定的name和方法sayHi创建了一个对象:
function User(name) {this.name = name;this.sayHi = function() {alert( "My name is: " + this.name );};}let john = new User("John");john.sayHi(); // My name is: John/*john = {name: "John",sayHi: function() { ... }}*/
定义方法
一、一个方法是关联到某个对象的函数,或者简单地说,一个方法是一个值为某个函数的对象属性。
二、定义方法就像定义普通的函数,除了它们必须被赋给对象的某个属性。
objectName.methodname = function_name // ObjectName是一个已经存在的对象,methodname是方法的名称,function_name是函数的名称var myObj = {method: function (params) {// ...do something}// 或者这样写myOtherMehod (params) {// ...do something else}}// 调用object.methodname(params)
三、可以在对象的构造函数中包含方法定义来为某个对象类型定义方法
【实例1】可以为之前定义的car对象定义一个函数格式化并显示其属性
function Car (make, model, year, owner) {this.make = makethis.model = modelthis.year = yearthis.owner = ownerthis.displayCar = displayCar // 在对象定义中将displayCar函数变成Car的方法// this指代方法所属的对象}function displayCar () {var result = `A Beautiful ${this.year} ${this.make} ${this.model}`pretty_print(result)}// 每个对象调用displayCar方法car1.displayCar()car2.displayCar()
