Javascript 覆盖拾取日期库中的原型函数

Javascript 覆盖拾取日期库中的原型函数,javascript,prototype,overwrite,pickadate,Javascript,Prototype,Overwrite,Pickadate,我想更改中DatePicker.prototype.nodes.createYearLabel()函数的默认行为 如何在不接触原始picker.date.js的情况下完成此操作 档案 我的覆盖文件应该是什么样子?我需要吗 以某种方式导入picker.date.js 非常感谢。您只需在代码中的任意位置覆盖函数即可: DatePicker.prototype.nodes.createYearLabel = function() { // code.. } 但是,请注意,当您更改日期选取器

我想更改中
DatePicker.prototype.nodes.createYearLabel()函数的默认行为

  • 如何在不接触原始picker.date.js的情况下完成此操作 档案
  • 我的覆盖文件应该是什么样子?我需要吗 以某种方式导入picker.date.js

  • 非常感谢。

    您只需在代码中的任意位置覆盖函数即可:

    DatePicker.prototype.nodes.createYearLabel = function() {
         // code..
    }
    
    但是,请注意,当您更改
    日期选取器.prototype
    时,创建的
    日期选取器的每个实例都将被更改,即使是在更改之前创建的实例也会被更改。记住这一点:

    function A() {}
    A.prototype.show = function(text) { console.log(text); };
    
    var a = new A();
    a.show("asdf");    // asdf
    
    A.prototype.show = function(text) { console.log(text + "1234"); };
    a.show("asdf");    // asdf1234
    
    如果您希望在整个应用程序中使用覆盖功能,并且不需要默认功能,您可以简单地将其放置在代码的顶部,即在执行任何代码之前,但在加载库之后


    希望这有帮助

    这将始终返回
    未捕获引用错误:未定义日期选择器
    @nimrod如果您使用的是诸如webpack之类的捆绑程序,则可能需要在覆盖之前使用您的库。但是,您不能持久化覆盖的函数,因为每次您再次需要库时,它都将使用默认函数。或者,您也可以在覆盖后执行类似于
    window.DatePicker=DatePicker
    的操作,只需使用
    window.DatePicker
    ,它相当于一个全局变量,而不需要。