자바 스크립트를 처음 사용했습니다. 인스턴스를 통해 함수에 값을 전달하는 방법은 무엇입니까?인스턴스를 통해 값을 전달하는 방법은 무엇입니까?
주 기능 (클래스)에 전달할 객체/인스턴스에 몇 가지 값이 있습니다.이 값 중 일부는 선택 사항이며, 전달되지 않으면 기본값이 사용됩니다. 여기
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가 true로 설정되어있는 경우, 지정된 버튼이 클릭되면, 지정된 입력 필드의 이름을 디스플레이하는, 다음을 표시 할 함수 프롬프트가 아닌 이름이면 기본값 인 임의의 문자열을 사용합니다.
하지만 buttonId에 대해 null이 표시됩니다 ... 이에 대한 조언을받을 수 있습니까? 여기
그래서 자바 스크립트 this
에 가지 까다로운입니다 jsFiddle
안녕하세요, 저는 null을 얻고있는 것을 이해합니다.하지만 어떻게 해결해야할지 모르겠다. 만약 내가'this'를 사용하지 않는다면, 나는 여전히 변수를 기본값에서 가져올 것이라고 생각했던 것과 같은 결과를 얻는다. if 인스턴스가 지정되지 않았다면? 어떻게해야합니까? – pleasega