[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] js闭包怎么返回一个构造函数

网上搜到的闭包都是返回一个正常的函数
但是我想要返回一个类或者构造函数怎么办?
对象赋值到变量都是传址的
这样行吗?
  1. function s(){
  2. var div_count=0;
  3. return(class{
  4. constructor(){
  5. alert(1);
  6. }
  7. });
  8. }
复制代码

本帖最后由 老刘1号 于 2023-3-5 22:29 编辑

多层套娃似神仙
  1. function s(){
  2. var div_count=0;
  3. return (function() {;
  4. div_count ++;
  5. var obj = {'cnt' : div_count};
  6. return obj;
  7. });
  8. }
  9. cnt1 = s();
  10. cnt2 = s();
  11. console.log(cnt1());
  12. console.log(cnt1());
  13. console.log(cnt1());
  14. console.log(cnt2());
复制代码
当然更离谱的套娃也有,比如匿名函数实现递归的Y组合子
  1. var fn = f => n => n ? f(n-1)*n : 1;
  2. var Y = y => (x => y(n => x(x)(n)))(x => y(n => x(x)(n)));
  3. alert(Y(fn)(4));
复制代码

TOP

返回列表