试图了解此代码块

李成

以下脚本呈现Kendo UI组合框控件的必填字段背景颜色。尽管此脚本可以很好地工作,但我很难理解它。

据我所知,它始于将所谓的自定义属性或方法附加_input到Kendo ui组合框对象并分配给新变量,_originalFunction但不是使用此变量,而是在下一行中再次使用此链接对象,而我实际上并没有并通过侦听事件的匿名函数将返回的结果分配给此函数。

通常,我并没有真正了解此函数内部发生的情况以及返回的值是什么。

有人可以用我能理解的方式解释吗?

(function ($) {
    var _originalFunction = kendo.ui.ComboBox.fn._input;
    kendo.ui.ComboBox.fn._input = function (e) {
        var result = _originalFunction.call(this, e);
        if (this.input) {
            this.input.addClass('required');
        }
        return result;
    }
})(jQuery);
阿伦·P·约翰尼(Arun P Johny)

这里发生的是,_input来自kendo的ComboBox库得到了增强,可以required向输入元素添加一个类

如果使用_originalFunction而不是kendo.ui.ComboBox.fn._input在赋值行中使用,则仅更改局部变量的值_originalFunction,而不更改kendo引用的函数

(function ($) {
    var _originalFunction = kendo.ui.ComboBox.fn._input; // store the original function to a variable so that it can be called later
    kendo.ui.ComboBox.fn._input = function (e) { // overwrite the _input  function
        var result = _originalFunction.call(this, e); // call the original function to apply default functionality
        if (this.input) { // additional functionality is added here
            this.input.addClass('required');
        }
        return result;
    }
})(jQuery);

原始方法接受单个参数,因此,当调用原始方法时,我们需要使用与期望的相同的上下文和参数,这就是该行的原因_originalFunction.call(this, e)但是应该更好地编写_originalFunction.apply(this, arguments)因为这样可以防止该方法签名将来发生任何更改

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

试图了解此Python代码

来自分类Dev

试图了解此代码行为

来自分类Dev

试图了解此代码对$ PSBoundParameters对象的作用

来自分类Dev

试图了解为什么此Python代码有效

来自分类Dev

试图了解此AffineTransform代码以在y中翻转图像

来自分类Dev

了解Perl的代码块

来自分类Dev

试图了解此函数定义的行为

来自分类Dev

试图了解如何使Backbone适应此菜单

来自分类Dev

我有修改此代码,但不了解if块中的第二条语句

来自分类Dev

需要帮助以了解此代码

来自分类Dev

试图了解RSA加密代码示例

来自分类Dev

试图了解我的代码中的问题

来自分类Dev

试图了解示例代码中的优先顺序

来自分类Dev

试图了解示例代码中的优先顺序

来自分类Dev

试图了解链表插入功能的代码

来自分类Dev

试图了解代码的最后一行

来自分类Dev

试图了解RSA加密代码示例

来自分类Dev

试图了解为什么<li>是块级元素

来自分类Dev

试图了解为什么<li>是块级元素

来自分类Dev

试图理解此代码(创建[char] range)

来自分类Dev

试图了解方案中的此lambda表达式

来自分类Dev

试图了解此d3力示例

来自分类Dev

试图了解此功能:Array.prototype.reverse = function(){

来自分类Dev

了解此多线程恶魔python代码

来自分类Dev

需要帮助了解此Perl代码

来自分类Dev

需要帮助了解此C代码的作用

来自分类Dev

了解此多线程恶魔python代码

来自分类Dev

我想了解此代码段的目的

来自分类Dev

需要帮助了解此C代码(数组)