需要原型内部或外部的功能
require function inside or outside of prototype?
我经常使用这样的原型:
在不同的文件中一遍又一遍地要求相同或相似的功能。要求Element
在范围内还是在范围外更好,如下所述?
我想它应该在外面,否则我会在我的代码中创建大量Element的副本,不是吗
var Element = require("./Element.js")
var _ = function(){
this.element = new Element();
this.stuff;
}
_.prototype.setStuff = function(stuff){
this.stuff = stuff
}
_.prototype.doStuff = function(){
this.stuff();
}
module.exports = _;
谢谢。
由于这是一个node.js模块,这里有几个注意事项:
-
CCD_ 2是同步的。因此,您永远不想在实时服务器请求中使用它,因为这会阻碍服务器的可伸缩性。在初始化模块和服务器时,通常需要使用
require()
一次。 -
node.js模块中声明的变量的作用域仅限于该模块。从技术上讲,模块作用域在模块函数内部,因此在其中声明的任何变量都已经是局部变量,因此不需要任何额外的作用域保护。
-
模块被缓存。因此,如果在同一路径上多次执行
require()
,速度会非常快。在第一次实际加载和初始化模块之后,所有后续调用都只返回相同的缓存模块句柄。因此,不要试图破坏代码的结构来减少您称为require()
的地方的数量。编写干净的代码,如果这需要在同一个模块上调用require()
几次,那也没什么大不了的。
需要相同或相似的功能文件。要求Element在范围内更好吗是否超出了以下范围?
您通常希望将require()
语句放在node.js模块的最高级别,因为您希望在模块首次初始化时对它们进行一次初始化,并且希望与模块中的所有代码共享该模块句柄。如果你的代码足够复杂,以至于你想在几个不同的地方为同一个模块调用require()
,以使你的代码更加分区,那么你可能无论如何都应该把你的代码分解成单独的模块,并让每个模块require()
自己需要。
我想它应该在外面,否则我会创造很多元素的副本遍布我的代码,
在模块的最高范围外。没有什么理由不只加载一次模块,并与模块中可能想要使用它的所有代码共享模块句柄
在一些特殊情况下,您可能只想在运行时的某些特定条件下,仅在需要模块时动态加载模块。这种情况很少见,而且由于加载模块的同步性,这样做会对性能产生影响,因此很少这样做。因此,我不想在之前的推荐中过于绝对,但也想解释一下,只按需加载内容是罕见的,而且会产生后果。
此处元素应在_函数范围内定义,除非它在IIFE内定义。如果它是在IIFE中定义的,那么就不会有任何问题,否则Element将暴露在窗口范围中,使用控制台我们可以覆盖Element函数。
希望这对你有帮助。
- 需要原型内部或外部的功能
- 访问内部功能范围的元素,而不是敲除中的外部
- 包括从外部文件到HTML的查询功能(使用Dropbox进行本地测试)
- AngularJS:使用虚拟机从外部调用控制器功能
- AngularJS参考工厂.来自外部模块的功能
- 当我在单击元素外部时,如何删除添加到单击元素的功能
- 异步功能取决于量角器测试中的外部模块
- 访问功能内的成员/从外部设置成员
- 单元测试控制器在NodeJS中发出外部HTTP请求的功能
- jqgrid工具栏搜索或外部搜索功能
- 具有翻转/图像交换功能的响应图像地图位于潜水器外部
- 访问Angular应用程序's来自外部非Angular插件的道具和控制器功能
- 在React中使用外部脚本功能
- 我想确保外部HTML加载后的功能
- 控制外部站点的功能
- 外部链接包含facebook连接功能
- 如何将外部方法传递给React中的无状态功能组件
- 当链接页面加载时,使用jQuery/Javascript从外部链接应用过滤功能
- 如何显示具有滚动和缩放(捏)功能的外部HTML
- 有没有比创建闭合从内部访问外部功能更干净/优雅的方法