原生js封装函数,如何传入参数?

发布于 2022-09-12 13:43:31 字数 151 浏览 8 评论 0

image

这种封装的函数,如何把参数传进去?就是里面那个可以打印外部传入的参数,调用new Ribbons(param)这样传入。

有没有大神知道,望指教一下!谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑕疵 2022-09-19 13:43:31

首先 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 = undefinednew 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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文