Board logo

标题: [问题求助] js闭包怎么返回一个构造函数 [打印本页]

作者: jyswjjgdwtdtj    时间: 2023-3-5 22:07     标题: 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:24

本帖最后由 老刘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));
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2