首先 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);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…