js中函数和方法

在 JavaScript 中,‌函数(Function)‌和‌方法(Method)‌本质都是函数,但它们的调用方式和上下文有所不同。以下是具体的联系与区别:
‌1、本质相同‌
两者都是通过 function 关键字定义的代码块,目的是封装可复用的逻辑。

// 函数定义
function sayHello() { 
  console.log("Hello!"); 
}

// 方法定义(作为对象属性)
const obj = {
  sayHello: function() {
    console.log("Hello from obj!");
  }
  es6引入对象方法简写等价于传统的sayHello:function(){},传统方法需要猫好和function关键词:
   sayHello() {
    console.log("Hello from obj!");
  }
};

‌2、均为对象‌
无论函数还是方法,本质上都是 Function 类型的实例,可以赋值、传递和调用。

关键区别‌:
‌特征‌ ‌函数(Function)‌ ‌方法(Method)‌
‌归属‌ 独立存在,不依赖对象 必须依附于对象(作为对象的属性)
‌调用方式‌ 直接调用:func() 通过对象调用:obj.method()
‌上下文(this)‌ 默认指向全局对象(如 window)或 undefined(严格模式) 通常指向所属对象(obj)
‌典型用途‌ 通用逻辑,无特定数据关联 操作所属对象的数据或状态

3、函数调用(函数名后跟括号)

// 定义一个无参函数
function sayHello() {
  console.log('Hello, World!');
}
 
// 执行函数
sayHello(); // 输出: Hello, World!

4、方法调用
(1)而methods这一概念在js中的表现就是,一个对象的属性是一个function:
同样的是函数,将其赋值给一个对象的成员以后,就不一样了。
将函数赋值给对象的成员后,那么这个就不在称为函数,而应该叫做方法。

var person={
name:"张三",
age:18,
//以前写法
techang:function(){
return 123
},
简写:
techang(){
return 123
}
}
console.log(person.techang())//123

(2)函数作为值赋值给变量,这是变量可以作为函数来使用,也可以执行
function add(a,b){
return a+b
}

var add2=add
var resule=add2(1,2)
console.log(resule)//3
5、构造函数(待补充)
6、‌导出对象与方法‌
(1)确保对象及其方法通过 export 正确导出(以 CommonJS 或 ES Modules 为例):

// utils.js
const obj = {
  // 封装方法(支持传参)
  calculate(a, b) {
    return a + b;
  }
};
module.exports = obj; // **CommonJS 导出**
// 或 export default obj; // **ES Modules 导出**

(2)在目标文件中导入对象后,直接通过对象调用方法并传参:

// main.js
const utils = require('./utils.js'); // CommonJS 导入
// 或 import utils from './utils.js'; // ES Modules 导入

console.log(utils.calculate(2, 3)); // 输出: 5

(3)动态传参的注意事项‌
‌this 绑定‌:若方法内使用 this,需确保调用时 this 指向正确(如通过 bind 绑定)17。
‌参数校验‌:建议在方法内部添加参数校验逻辑,避免未定义行为3。

链接:require/exports 或 import/export的联系和区别,各自的使用场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值