我是JavaScript新手。如何通過實例將值傳遞給函數?如何通過實例傳遞值?
我有這個對象/實例中的一些值,我想傳遞給主函數(類),其中一些值是可選的,如果不通過,將使用默認值。
var test = new Test({
buttonId: 'sb',
inputField: 'saveTextarea'
});
下面是函數
(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;
}
}());
邏輯是簡單地在指定的輸入字段中顯示的文件名時指定的按鈕被點擊時,如果requestFileName被設置爲真,那麼它將顯示提示名稱,如果不是,它將使用默認的隨機字符串。
但我得到buttonId null ...我可以得到這方面的建議嗎?
這裏是jsFiddle
嗨,我明白我得到一個null,但我不知道如何解決這個問題,如果我不使用'this',我仍然得到相同的結果,我認爲它會從默認的變量獲取if不是實例如果指定?我如何實現這一目標? – pleasega