Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erklärung zum Hinzufügen von Methodeninstanzen zu JavaScript-Typen

Ausführliche Erklärung zum Hinzufügen von Methodeninstanzen zu JavaScript-Typen

伊谢尔伦
伊谢尔伦Original
2017-07-25 10:51:001701Durchsuche

Methoden zu Typen hinzufügen
JavaScript ermöglicht das Hinzufügen von Methoden zu Basistypen. Zum Beispiel: boolean, string, Number
Beispiel: Fügen Sie eine Methodenfunktion in Function hinzu, die andere benutzerdefinierte Funktionen zu Function hinzufügt (vermeiden Sie die Verwendung von Prototypen), und verwenden Sie dann die Methodenfunktion, um eine Add-On-Funktion zu Function hinzuzufügen, und testen Sie schließlich The Die Add-Funktion ist in Function vorhanden. Diese Methode fügt die Funktion func zu Function hinzu und benennt sie mit name. Geben Sie dann das Funktionsobjekt

Function.prototype.method = function(name, func){
    // 避免覆盖已有的方法
    if(!this.prototype[name]){
        this.prototype[name] = func;
    }
    return this;
};
// 通过Function.method方法添加一个加法函数到Function,该函数的名称为“add”
Function.method("add", function(a, b){
    if(typeof a != 'number' || typeof b != 'number'){
        throw {
            'name'  : "typeError",
            'message' : "add方法必须传入数字"
        };
    }
    return a + b;
});
// 调用Function的add方法是否存在
(function(){
    try{
        alert(Function.add(1, 3)); // 输出:4
    } catch(e){
        if(e.name === 'typeError'){
            alert(e.message);
        }
    }
})();
// 去除字符串两端的空白
String.method("trim", function(){
    return this.replace(/^\s+|\s+$/g, '');
});
alert('|' + "   hello world     ".trim() + '|'); // 输出: '|hello world|'
// 添加数字的取整函数
Number.method("integer", function(){
    // 可以通过此种方式调用函数,如:Math.random() == Math['random']() == Math["random"]()
    return Math[this < 0 ? &#39;ceil&#39; : &#39;floor&#39;](this);
});
alert((-10 / 3).integer()); // 输出:-3
zurück

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Hinzufügen von Methodeninstanzen zu JavaScript-Typen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn