函数、对象、方法、类、实例

函数、对象、方法、类、实例

函数

定义

函数是一段可以重复使用的代码块,函数内有特定的任务或操作。
函数内用参数、返回值,供调用者使用。

代码举例

// 定义一个函数  
function greet(name) {  
  console.log(`Hello, ${name}!`);  
}  
  
// 调用函数  
greet('Alice'); // 输出: Hello, Alice!

函数声明的两种方式及区别

函数声明
function functionName(parameters) {  
  // 函数体  
}

// 使用
functionName('')
  • 函数声明会被提升,提升到作用域顶部,使用函数时可以在前,也可以在后。
  • 不能作为值使用(赋值给变量、参数传递)
  • 函数名唯一不能重复
函数表达式
var functionName = function(parameters) {  
  // 函数体  
};
// 使用
// 赋值给变量
var variable = functionName()
// 作为参数传递
var variable = functionName(fn)

// 或者使用箭头函数
const functionName = (parameters) => {
	// 函数体
}
// 使用
functionName('')
  • 不会被提升,所以使用的时候只能在函数表达式之后
  • 可以作为变量,参数使用
  • 可以创建匿名函数,用于一次性使用或回调函数
匿名函数表达式
通常用于一次性执行,比如回调函数、事件处理函数、立即执行的函数表达式
不能直接通过函数名来调用,因为他没有名字
经常作为参数传递给其他函数
const anonymousFunction = function(paramters) {
	// 函数体
}

// 举例-1
// 实现某段代码1000毫秒后执行
setTimeout(function() {
	// 函数体
},1000)
// 实现某代码1000毫秒持续执行,直到3000毫秒后结束
let intervalId = setInterval(function() {
	// 函数体
},1000)
setTimeout(function() {
	clearInterval(intervalId)
},3000)

立即执行函数表达式(IIFE)
立即执行、需要使用临时函数、避免新定义的变量污染全局、封装私有的变量和函数
(function() {
	// 函数体
	// 定义私有变量和函数
})();
// 第一个(),形成一个函数表达式;第二个(),表示函数表达式的调用

// 举例
(function() {
	let privateVariable = '这是一个私有化变量'
	// 浏览器窗口中添加一个方法,暴露这个私有化变量
	window.getPtivateVariable = function() {
		return privateVariable
	}
})()

// 调用公开的方法
console.log(getPrivateVarible())
使用场景
  • 需要一个可以做变量,或者可以作为参数传递,或者需要成为其他函数的返回值的函数时,使用函数表达式
  • 需要一个一次性函数(比如计时器)时,使用匿名函数表达式

构造函数

用于初始化新创建的对象,使用 new 来创建一个对象的时候,构造函数就会被调用,并返回一个新创建的对象实例。
通常构造函数的名,首字母需要大写

对象

定义

一切都是对象,是包含属性和方法的数据容器。

代码举例

// 定义一个对象  
const person = {  
  name: 'Bob', // 属性  
  age: 30,     // 属性  
  greet: function() { // 方法  
    console.log(`Hello, my name is ${this.name}.`);  
  }  
};  
  
// 访问对象的属性  
console.log(person.name); // 输出: Bob  
  
// 调用对象的方法  
person.greet(); // 输出: Hello, my name is Bob.

定义

类,定义了对象的结构和行为
类,可以是具有相同属性和方法的对象集合,也就是,可以通过类创建多个具有相同属性的对象实例。

代码举例

// 定义一个类  
class Person {  
  // 构造函数,用于初始化对象的属性  
  constructor(name, age) {  
    this.name = name;  
    this.age = age;  
  }  
  
  // 类的方法  
  greet() {  
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);  
  }  
  
  // 另一个类的方法  
  introduce() {  
    console.log(`My name is ${this.name}.`);  
  }  
}  
  
// 使用类创建对象实例  
const alice = new Person('Alice', 25); // alice 是 Person 类的一个实例  
const bob = new Person('Bob', 30); // bob 也是 Person 类的一个实例  
  
// 访问实例的属性  
console.log(alice.name); // 输出: Alice  
console.log(bob.age); // 输出: 30  
  
// 调用实例的方法  
alice.greet(); // 输出: Hello, my name is Alice and I am 25 years old.  
bob.introduce(); // 输出: My name is Bob.

类的继承

子类可以继承父类的属性和方法
extends 表示继承自哪一个类
super()调用父类的构造函数
// 定义一个父类 Animal  
class Animal {
	constructor(name){
		this.name = name
	}
	speak() {
		console.log(`${this.name} 发出一些声音`)
	}
}
// 定义一个子类 Dog,继承自 Animal
class Dog extends Animal {
	constructor(name, breed) {
		// 继承父类的方法
		super(name)
		this.breed = breed
	}
	bark() {
		console.log(`${this.name}是一只${this.breed}`)
	}
	// 重写父类的方法
	speak() {
		console.log(`${this.name}的叫声是"汪汪"`)
	}
}

// 创建Dog的实例
const dog = new Dog('大白','萨摩耶')
// 调用方法
dog.bark()
dog.speak()

方法

定义

定义在对象上的函数,与对象紧密相关,用于操作对象的数据、执行与对象相关的任务。只能在所属对象上调用。 

代码举例

// 定义一个包含方法的对象  
const car = {  
  brand: 'Toyota',  
  drive: function() { // 这就是一个方法  
    console.log(`${this.brand} is driving.`);  
  }  
};  
  
// 调用对象的方法  
car.drive(); // 输出: Toyota is driving.

实例

定义

通过类或者构造函数创造的对象,类定义了对象的结构和行为,实例是这个对象的具体实现。每个实例都有自己的属性和方法,可以修改这些属性和方法。

代码举例

// 定义一个类  
class Animal {  
  constructor(name) {  
    this.name = name; // 构造函数的参数将赋值给实例的属性  
  }  
    
  speak() { // 类的方法  
    console.log(`${this.name} speaks.`);  
  }  
}  
  
// 使用类的构造函数创建实例  
const dog = new Animal('Woofy'); // dog 是 Animal 类的一个实例  
  
// 访问实例的属性  
console.log(dog.name); // 输出: Woofy  
  
// 调用实例的方法  
dog.speak(); // 输出: Woofy speaks.
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值