Ich bin neu in Javascript. Wie übertrage ich Werte über eine Instanz an eine Funktion?Wie wird Wert durch Instanz übergeben?
Ich habe ein paar Werte in diesem Objekt/Instanz, die ich an die Hauptfunktion (Klasse) übergeben möchte, einige dieser Werte sind optional, wenn nicht übergeben, werden Standardwerte verwendet. Hier
var test = new Test({
buttonId: 'sb',
inputField: 'saveTextarea'
});
ist die Funktion
(function() {
var buttonId, inputField, requestFileName, fileName;
buttonId = null;
inputField = null;
requestFileName = null;
fileName = null;
// constructor
this.Test = function() {
// defaults
var defaults = {
buttonId: "",
inputField: "",
requestFileName: false, //if true, prompt for fileName
fileName: Math.random().toString(36).slice(2)
}
// extend defaults
if (arguments[0] && typeof arguments[0] === "object") {
this.options = extendDefaults(defaults, arguments[0]);
}
}
document.getElementById(buttonId).onclick = function() {
if (requestFileName == true)
{
fileName = prompt("Enter file name");
}
var myTextArea = document.getElementById(inputField).value
myTextArea.innerHTML = fileName;
};
function extendDefaults(source, properties) {
var property;
for (property in properties) {
if (properties.hasOwnProperty(property)) {
source[property] = properties[property];
}
}
return source;
}
}());
Die Logik ist einfach in dem angegebenen Eingabefeld die Dateinamen angezeigt werden, wenn die angegebene Taste angeklickt wird, wenn requestFileName auf true gesetzt ist, dann wird angezeigt, es die Name der Eingabeaufforderung, andernfalls wird eine zufällige Zeichenfolge verwendet, die die Standardeinstellung ist.
Aber ich bekomme null für buttonId ... kann ich einen Rat bekommen?
Hier ist die jsFiddle
Hallo, ich verstehe, ich bekomme eine Null, aber ich bin mir nicht sicher, wie das zu lösen, wenn ich 'this' nicht verwende, bekomme ich immer noch das gleiche Ergebnis, das ich dachte, es würde die Variablen aus dem Standard bekommen nicht die Instanz, wenn angegeben? Wie erreiche ich das? – pleasega