javascript,无法覆盖功能

时间:2013-01-25 17:09:47

标签: javascript-events javascript

如何覆盖其他文件js中的函数长度?

  jQuery(function ($) {    

    $.fn.normal_text = function (text) {

           $.fn.normal_text.length = function(){
              ...
           }

        }

}

我试试这个:

$(document).ready(function(){
    $.fn.normal_text.length = function(){ alert('123'); }
});

但它不起作用。我似乎对它很疯狂

2 个答案:

答案 0 :(得分:3)

您无法覆盖函数的length属性,因为它是只读的内置函数。

在语言规范中的“函数实例的属性”下:

  

15.3.5.1 length

     

length属性的值是一个整数,表示函数预期的“典型”参数数。但是,该语言允许使用其他数量的参数调用该函数。在除了由length属性指定的数量之外的多个参数上调用时,函数的行为取决于函数。此属性的属性为{ [[Writable]]: false , [[Enumerable]]: false, [[Configurable]]: {{1 }} false

粗体部分解释了函数实例上的}属性不可写。

答案 1 :(得分:1)

normal_text是一个函数,而不是一个对象,所以你不能覆盖它的属性。