JavaScript构造函数返回未定义的值
我试图创建一个脚本,在提交时从表单值创建一个对象,但在每次提交时返回未定义的值 这是HTML:JavaScript构造函数返回未定义的值,javascript,function,object,constructor,Javascript,Function,Object,Constructor,我试图创建一个脚本,在提交时从表单值创建一个对象,但在每次提交时返回未定义的值 这是HTML: + 这是我的剧本: (function(){ function Post(title, image, text) { this.title = title; this.image = image; this.text = text; this.date = new Date(); } var post = n
+
这是我的剧本:
(function(){
function Post(title, image, text) {
this.title = title;
this.image = image;
this.text = text;
this.date = new Date();
}
var post = new Post();
function Dashboard() {
var main = document.querySelector("main");
var article = document.createElement("div");
article.classList.add("post");
var title = document.createElement("h1");
var image = document.createElement("div");
image.classList.add("img");
var text = document.createElement("p");
var date = document.createElement("p");
var postTitle = post.title;
var postImage = post.image;
var postText = post.text;
var postDate = post.date;
title.innerText=postTitle;
image.style.backgroundImage="url("+postImage+")";
text.innerText=postText;
date.innerText=postDate;
article.appendChild(title);
article.appendChild(image);
article.appendChild(text);
article.appendChild(date);
main.appendChild(article);
}
var submit = document.getElementById("submit");
submit.addEventListener("click", function(){
var inputTitle = document.querySelector(".title").value;
var inputImage = document.querySelector(".image").value;
var inputText = document.querySelector(".text").value;
var post = new Post(inputTitle, inputImage, inputText);
Dashboard();
});
})();
您正在单击处理程序中创建一个新变量
post
,但您的仪表板正在使用它在闭包中捕获的变量。您可以使仪表板
函数接受post作为参数
功能帖子(标题、图像、文本){
this.title=标题;
这个图像=图像;
this.text=文本;
this.date=新日期();
}
功能仪表板(post){
var main=document.querySelector(“main”);
var article=document.createElement(“div”);
文章.classList.add(“post”);
var title=document.createElement(“h1”);
var image=document.createElement(“div”);
image.classList.add(“img”);
var text=document.createElement(“p”);
var日期=document.createElement(“p”);
var postTitle=post.title;
var postImage=post.image;
var postText=post.text;
var postDate=post.date;
title.innerText=postTitle;
image.style.backgroundImage=“url(“+positmage+”);
text.innerText=postText;
date.innerText=postDate;
第条.儿童(头衔);
第条.儿童(图像);
第条.儿童(文本);
第条.儿童(日期);
主要条款(第条);
}
var submit=document.getElementById(“提交”);
submit.addEventListener(“单击”,函数(){
var inputTitle=document.querySelector(“.title”).值;
var inputImage=document.querySelector(“.image”).value;
var inputText=document.querySelector(“.text”).值;
var post=新post(输入标题、输入图像、输入文本);
仪表板(员额);
});代码>
+