1

他のファイル js で関数の長さをオーバーライドするにはどうすればよいですか?

  jQuery(function ($) {    

    $.fn.normal_text = function (text) {

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

        }

}

私はこれを試します:

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

しかし、うまくいきません。私はそれに夢中になっているようです

4

2 に答える 2

3

length読み取り専用の組み込みであるため、関数のプロパティをオーバーライドすることはできません。

言語仕様の「関数インスタンスのプロパティ」の下:

15.3.5.1 長さ

length プロパティの値は、関数が期待する引数の「典型的な」数を示す整数です。ただし、この言語では、他の数の引数を使用して関数を呼び出すことができます。length プロパティで指定された数以外の数の引数で呼び出されたときの関数の動作は、関数によって異なります。このプロパティには属性があります。{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }

太字部分は、length関数インスタンスのプロパティが書き込み可能でないことを説明しています。

于 2013-01-25T17:21:03.700 に答える
1

normal_text is a function, not an object so you can't override it's properties.

于 2013-01-25T17:16:43.417 に答える