首先 param 没有定义,会报错。你是想打印传入的参数的话:(function (name, factory) { if (typeof window === "object") { window[name] = factory(1); // 这里传入 } })('Ribbons', function(param) { console.log(param); });或者(function (name, factory) { if (typeof window === "object") { window[name] = factory(1); // 这里传入 } })('Ribbons', function() { console.log(arguments); });然后 function() { console.log(param) } 调用后并没有返回值,所以 window.Ribbons = undefined,new Ribbons() 又会报错。应该返回一个函数来作为构造函数:(function (name, factory) { if (typeof window === "object") { window[name] = factory(1); // 这里传入 } })('Ribbons', function() { console.log(arguments); return function() { console.log(this instanceof Ribbons); // true }; }); new Ribbons();期望 new Ribbons(自定义参数):(function (name, factory) { if (typeof window === "object") { window[name] = factory(); } })('Ribbons', function() { // console.log(param); 这里会报错,并没有定义 param 变量 return function(param) { // 作为构造函数 console.log(param); // 1 }; }); new Ribbons(1);
首先
param
没有定义,会报错。你是想打印传入的参数的话:或者
然后
function() { console.log(param) }
调用后并没有返回值,所以window.Ribbons = undefined
,new Ribbons()
又会报错。应该返回一个函数来作为构造函数:期望
new Ribbons(自定义参数)
: