js动态添加方法和全局变量/按需加载组件

阅读更多

(本文为作者johnsmith9th原创,未经作者许可禁止转载,如需商务合作请联系[email protected]

下面给一个名叫ComponentLoader的class批量添加loadXXX方法并输出XXX为全局变量。

(function(){

__component_names.forEach(function(cmpname){

  Object.defineProperty(ComponentLoader.prototype, `load${cmpname}`, {

    enumerable: true,

    configurable: false,

    writable: true,

    value: (function(cmpname) { 

    return function(callback) { 

import(`./${cmpname}.jsx`).then((o)=>{

var firstExport = o[Object.keys(o)[0]];

var w = window;

Object.defineProperty(w,cmpname,{value:firstExport,writable:false,configurable:false});

if(callback)callback();

})   

    }  

    })(cmpname)

  });

});

})();

你可能感兴趣的:(js动态添加方法和全局变量/按需加载组件)