函数中定义函数,以及调用内部函数和外部函数

现阶段正在学习nodejs ,视频是跟着大地老师的课程,讲到了【使用原生nodejs封装一个类似express框架的路由】,发现理解有点跟不上了,所以重新复习一下函数。

/* **************************** 首先复习函数内容:****************************
一:普通的函数中定义函数;
  1. 函数中定义的函数:需要从数据类型的角度理解,一旦执行这个函数,就会定义出内部一个函数。因为作用域的存在,无法在外面直接调用访问。但是可以在这个函数内直接使用。要想在外部访问,可以将内部函数作为结果返回。
  2. 函数作为对象,定义的方法:函数在对象中,又被称为方法,这时候,是可以通过点 或者['方法名']来访问调用的。
*/

let app = function() {
  console.log('调用 app 方法');
  // (1). 定义内部函数:say() read() ,只能在内部直接使用
  function say(){
    console.log('这是SAY方法');
  }
  let read = function() {
    console.log('This is read');
  }
  // 将内部函数返回暴露出去,可以在外部使用
  return {
    say:say,
    read
  }
}
// (2). 函数作为对象,给对象定义方法
app.get = function() {
  console.log('调用 app.get方法');
}

app.post = function() {
  console.log('调用 app.post方法');
}

// ---------------------- 调用【内部方法】
// 1、实例化对象 调用 内部方法  -------------》我这样表述正确吗?
let person = app(); // 输出:调用 app 方法
person.say();       // 输出:这是SAY方法
person.read();
// 2、构造函数 直接 调用 内部方法  -------------》我这样表述正确吗?
app();        // 输出:调用 app 方法
app().say();  // 输出:【调用 app 方法】 和 【这是SAY方法】

// ---------------------- 函数作为对象 调用 外部方法
// app.say(); // 出错:app.say is not a function 作为对象,不可以调用内部方法
app.get();
app['get'](); // 调用方法的另一个方式
app.post();

问题:上部的 “普通的函数中定义函数 ”和 我下部 “1、实例化对象 调用 内部方法”好像矛盾。

不知道理解对不对?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值