Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为node.js插件创建包装类_Javascript_Node.js_Vue.js_Wrapper_Nuxt.js - Fatal编程技术网

Javascript 如何为node.js插件创建包装类

Javascript 如何为node.js插件创建包装类,javascript,node.js,vue.js,wrapper,nuxt.js,Javascript,Node.js,Vue.js,Wrapper,Nuxt.js,因此,我是JavaScript新手,有一个项目,我正在使用我已经能够创建cookie并正确设置它们,如下所示: this.Vue.$cookies.set('cookieName', cookieValue, { sameSite: 'lax', secure: true }); 但是,我想创建一个包装函数/类,这样我就可以将sameSite:'lax'和secure:true选项设置为默认值,而不必每次从该模块调用set函数时都将它们传递进来。显然,如

因此,我是JavaScript新手,有一个项目,我正在使用我已经能够创建cookie并正确设置它们,如下所示:

this.Vue.$cookies.set('cookieName', cookieValue, {
          sameSite: 'lax',
          secure: true
});
但是,我想创建一个包装函数/类,这样我就可以将
sameSite:'lax'
secure:true
选项设置为默认值,而不必每次从该模块调用
set
函数时都将它们传递进来。显然,如果我愿意,我还希望能够将这些选项覆盖到其他选项

通过我在其他地方找到的示例,我认为这个类应该大致如下:

const cookies = require('cookie-universal-nuxt');

cookies(function ($) {

    const defaultOptions = {
        sameSite: 'lax',
        secure: true
    };

    return {
        get: function(name, options) {
            return $.cookies(name, options)
        },

        set: function (name, value, options) {
            $.cookies(name, value, // somehow options & defaultOptions are passed in and merged here)
        },
    };
});

然而,这可能是完全错误的。就像我说的,我是JS新手,所以我很迷路。任何帮助都将不胜感激

我认为您不需要一个类来实现这一点-一个简单的包装器函数可能会满足您的需要。下面介绍如何创建一个小工厂函数,创建绑定到特定上下文的包装器:

function makeSetCookie($) {
  return function(name, value, options) {
    const defaultOptions = {
      sameSite: 'lax',
      secure: true
    }; 

    $.set(name, value, Object.assign(defaultOptions, options));
 }
}

const setCookie = makeSetCookie(this.Vue /* or whatever */);
// and now you can use setCookie wherever

调用方可以传递或不传递
选项
参数的值。行
Object.assign(defaultOptions,options)
options
中的所有键/值复制到
defaultOptions
,如果它们出现在
options
中,则覆盖defaultOptions(sameSite,secure)中已经存在的所有键。如果
options
为null或未定义,则可以-返回的值仅为
defaultOptions
。这里有更多信息:

我认为您不需要一个类来实现这一点-一个简单的包装器函数可能会满足您的需要。下面介绍如何创建一个小工厂函数,创建绑定到特定上下文的包装器:

function makeSetCookie($) {
  return function(name, value, options) {
    const defaultOptions = {
      sameSite: 'lax',
      secure: true
    }; 

    $.set(name, value, Object.assign(defaultOptions, options));
 }
}

const setCookie = makeSetCookie(this.Vue /* or whatever */);
// and now you can use setCookie wherever

调用方可以传递或不传递
选项
参数的值。行
Object.assign(defaultOptions,options)
options
中的所有键/值复制到
defaultOptions
,如果它们出现在
options
中,则覆盖defaultOptions(sameSite,secure)中已经存在的所有键。如果
options
为null或未定义,则可以-返回的值仅为
defaultOptions
。这里的更多信息:

我很感激这个建议,但我应该更清楚地说,我想保持方法的非静态性。我要取消这些设置的上下文/对象并不总是完全是
this.Vue
,我不想将参数传递给指定上下文的静态函数。我想要的东西就像我最初询问的那样,
$
在哪里表示方法将被取消的上下文。这将无法正常工作,因为
This.Vue.$cookies
中的
This
值在
setCookie()
函数中不正确。编辑它以反映注释中给出的要求。希望这是有帮助的!我很欣赏这个建议,但我应该更清楚地说,我想保持方法的非静态性。我要取消这些设置的上下文/对象并不总是完全是
this.Vue
,我不想将参数传递给指定上下文的静态函数。我想要的东西就像我最初询问的那样,
$
在哪里表示方法将被取消的上下文。这将无法正常工作,因为
This.Vue.$cookies
中的
This
值在
setCookie()
函数中不正确。编辑它以反映注释中给出的要求。希望这是有帮助的!