Heim >Web-Frontend >js-Tutorial >Zusammenfassung von 20 Möglichkeiten zum Erstellen von Funktionen in Javascript_Javascript-Kenntnissen
Wir erstellen häufig eine Funktion, um einige Nachfrageprobleme bei der Arbeit zu lösen. Im Folgenden finden Sie 20 Möglichkeiten, Funktionen zu erstellen, die Einzelpersonen bei der Arbeit zusammengefasst haben.
function sayHello(){ console.log('hello'); } function leave(){ console.log('goodbye'); } //test sayHello();
Um die Anforderungen zu erfüllen, deklarieren Sie schnell eine Funktion
var sayHello = function(){ console.log('hello'); } var leave = function(){ console.log('goodbye'); } //test leave();
Reagieren Sie auf jede Anfrage und geben Sie die zu lösende Funktionsausdrucksnummer an
var Action = { sayHello : function(){ console.log('hello'); }, leave : function(){ console.log('goodbye'); } } //test Action.sayHello();
Das Erstellen einer Methodenobjektklasse sieht übersichtlicher aus
var Action = function(){}; Action.sayHello = function(){ console.log('hello'); } Action.leave = function(){ console.log('goodbye'); } //test Action.sayHello();
Fügen Sie dem Singleton Attributmethoden hinzu und bereinigen Sie den Namespace
var Action = function(){ return { sayHello : function(){ console.log('hello'); }, leave : function(){ console.log('goodbye'); } } } // //test var a = Action(); a.leave();
Durch die Rückgabe des neuen Objekts können wir noch mehr tun
var Action = function(){}; Action.prototype.sayHello = function(){ console.log('hello'); } Action.prototype.leave = function(){ console.log('goodbye'); } //test var a = new Action(); a.sayHello();
Die Prototypenkette soll Mehrfacherstellung verhindern
var Action = function(){}; Action.prototype = { sayHello : function(){ console.log('hello'); }, leave : function(){ console.log('goodbye'); } } //test var a = new Action(); a.leave();
Das Zuweisen von Objekten zu Prototypen sieht sauberer aus
var Action = function(){ this.sayHello = function(){ console.log('hello'); } this.leave = function(){ console.log('goodbye'); } } //test var a = new Action(); a.leave();
Vergessen Sie nicht, Attribute innerhalb der Klasse hinzuzufügen
Function.prototype.sayHello = function(){ console.log('hello'); } Function.prototype.leave = function(){ console.log('leave'); } //test var f = function(){}; f.sayHello();
Erweiterung des Basisklasse-Prototyps, ein neuer Raum
Function.prototype.addMethod = function(name, fn){ this[name] = fn; } var methods = function(){}; methods.addMethod('sayHello', function(){ console.log('hello'); }); methods.addMethod('leave', function(){ console.log('leave'); }); //test methods.sayHello();
Funktionen allgemeiner Definitionsmethoden sind bequemer zu verwenden
Function.prototype.addMethod = function(name, fn){ this.prototype[name] = fn; } var Methods = function(){}; Methods.addMethod('sayHello', function(){ console.log('hello'); }); Methods.addMethod('leave', function(){ console.log('leave'); }); //test var a = new Methods(); a.leave();
Wir können Klassenoperationen auch für die Prototypenzuweisung verwenden
Function.prototype.addMethod = function(name, fn){ this[name] = fn; return this; } var methods = function(){}; methods.addMethod('sayHello', function(){ console.log('hello'); }).addMethod('leave', function(){ console.log('leave'); }); //test methods.leave();
Was ist falsch an Kettenoperationen?
Function.prototype.addMethod = function(name, fn){ this.prototype[name] = fn; return this; } var Methods = function(){}; Methods.addMethod('sayHello', function(){ console.log('hello'); }).addMethod('leave', function(){ console.log('leave'); }); //test var a = new Methods(); a.leave();
Prototypenkette = einen Schritt weiter
Function.prototype.addMethod = function(obj){ for(var key in obj){ this[key] = obj[key]; } } var methods = function(){}; methods.addMethod({ sayHello : function(){ console.log('hello'); }, leave : function(){ console.log('goodbye'); } }); //test methods.leave();
Fügen Sie Objekte hinzu, um mehr auf einmal zu erledigen
Function.prototype.addMethod = function(obj){ for(var key in obj){ this.prototype[key] = obj[key]; } } var Methods = function(){}; Methods.addMethod({ sayHello : function(){ console.log('hello'); }, leave : function(){ console.log('goodbye'); } }); //test var a = new Methods(); a.leave();
Was ist falsch an Prototypen?
Function.prototype.addMethod = function(obj){ for(var key in obj){ this[key] = obj[key]; } return this; } var methods = function(){}; methods.addMethod({ sayHello : function(){ console.log('hello'); } }).addMethod({ leave : function(){ console.log('goodbye'); } }); //test methods.leave();
Funktional hinzugefügte Objekte können auch verkettet werden
Function.prototype.addMethod = function(obj){ for(var key in obj){ this.prototype[key] = obj[key]; } return this; } var Methods = function(){}; Methods.addMethod({ sayHello : function(){ console.log('hello'); } }).addMethod({ leave : function(){ console.log('goodbye'); } }); //test var a = new Methods(); a.leave();
Klassenkettenoperationen können auch mehr leisten
Function.prototype.addMethod = function(){ if(arguments.length < 1) return; var tostring = Object.prototype.toString; if(tostring.call(arguments[0]) === '[object Object]'){ for(var key in arguments[0]){ this[key] = arguments[0][key]; } }else if(typeof arguments[0] === "string" && tostring.call(arguments[1]) === '[object Function]'){ this[arguments[0]] = arguments[1]; } return this; }
Fügen Sie die Funktion hinzu und kapseln Sie sie
Function.prototype.addMethod = function(){ if(arguments.length < 1) return; var tostring = Object.prototype.toString; if(tostring.call(arguments[0]) === '[object Object]'){ for(var key in arguments[0]){ this.prototype[key] = arguments[0][key]; } }else if(typeof arguments[0] === "string" && tostring.call(arguments[1]) === '[object Function]'){ this.prototype[arguments[0]] = arguments[1]; } return this; }
Klassische Ergänzung verfolgt Personalisierung
Function.prototype.addMethod = function(){ if(arguments.length < 1) return; var cout = 0, tostring = Object.prototype.toString, that; if(typeof arguments[0] === "boolean" && arguments[0]){ cout++; that = this; }else{ that = this.prototype; } if(tostring.call(arguments[cout]) === '[object Object]'){ for(var key in arguments[cout]){ that[key] = arguments[cout][key]; } }else if(typeof arguments[cout] === "string" && tostring.call(arguments[cout + 1]) === '[object Function]'){ that[arguments[cout]] = arguments[cout + 1]; } return this; } //text var Text1 = function(){}; Text1 .addMethod('sayHello', function(){console.log('last say hello!')}) .addMethod('leave', function(){console.log('last goodbye!')}); var t = new Text1(); t.sayHello(); t.leave(); var test2 = function(){}; test2 .addMethod(true, 'sayHello', function(){console.log('last say hello!')}) .addMethod(true, 'leave', function(){console.log('last goodbye!')}); test2.sayHello(); test2.leave();
Streben Sie nach Personalisierung, ohne dass Sie erklären müssen, warum
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.