分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

node.js学习日记(二)node.js的作用域

发布时间:2023-09-06 01:58责任编辑:傅花花关键词:js作用域

node.js的作用域

测试package1能否能通过require("./package2")来调用package2内的函数:

1 //paackage1.js2 var a1 = 1;3 4 require("./package2");5 6 /*即使require了package2,也无法调用函数double_a*/7 a1 = double_a(a1);//double_a is not defined8 9 console.log("package1:" + a1);
1 //paackage2.js2 function double_a(a) {3 ????return a * 2;4 }5 6 exports.double_a = double_a;

报错了,并不能调用

 

package1要调用package2内的函数的正确方式:

1 //package12 var a1 = 1;3 4 /*todo:获取了package2的exports对象*/5 var package2 = require("./package2");6 7 a1 = package2.double_a(a1);8 console.log("package2:" + a1);
1 //package22 function double_a(a) {3 ????return a * 2;4 }5 6 /*todo:把double_a挂载到exports对象*/7 exports.double_a = double_a;

成功调用函数

 

再来试一个,利用作用域链,让package1获取package2内的变量

1 //package12 var package2 = require("./package2");3 console.log("name:" + package2.getName());
1 //package22 var name = "lyjn";3 4 /*todo:exports设置一个getName的方法获取name*/5 exports.getName = function() {6 ????return name;7 };

完全OK

2.知识要点

在node中只有模块作用域,没有全局作用域

require的主要作用

1.加载模块并执行模块中的代码;2.返回exports对象;

exports对象

1.所有模块都有一个exports对象,默认值是一个空对象`{}`;2.可以给exports对象添加属性;

小技巧

1.require js文件时可以舍去.js,require("./package.js")等价于require("./package")

node.js学习日记(二)node.js的作用域

原文地址:https://www.cnblogs.com/langyjn/p/9142164.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved