Javascript 代码1不起作用,但另一个不起作用。第一个代码有什么问题?
我正在努力学习javascript。就我个人而言,我不知道下面的目标代码有什么问题。我得到一个错误,说: 此.sign不是一个函数Javascript 代码1不起作用,但另一个不起作用。第一个代码有什么问题?,javascript,Javascript,我正在努力学习javascript。就我个人而言,我不知道下面的目标代码有什么问题。我得到一个错误,说: 此.sign不是一个函数 let socialAppFunctions={ displayNewsFeed:函数(){ 让socialPostsSection=document.querySelector(“socialPosts”); forEach(函数(posts){ 让socialPosts=document.createElement(“h4”); socialPosts.text
let socialAppFunctions={
displayNewsFeed:函数(){
让socialPostsSection=document.querySelector(“socialPosts”);
forEach(函数(posts){
让socialPosts=document.createElement(“h4”);
socialPosts.textContent=帖子;
socialPostsSection.appendChild(socialPosts);
});
},
登录按钮:函数(){
让loginButton=document.querySelector(“#loginButton”);
addEventListener(“单击”,函数(){
让userName=document.querySelector(“#user”);
让passWord=document.querySelector(#pass”);
this.sign(userName.value、passWord.value);
});
},
登录:功能(用户名、密码){
if(此.userValidation(用户名、密码)){
这是displayNewsFeed();
}否则{
警报(“请检查用户名和密码”);
}
},
userValidation:函数(用户名、密码){
for(设i=0;i
如果我不把它们作为一个对象放在里面,下面这一个就行了:
function signIn (username, password) {
if (userValidation(username, password)) {
displayNewsFeed();
} else {
alert("Please check username and password");
}
}
function userValidation (username, password) {
for (let i = 0; i < database.length; i++) {
if (database[i].username === username && database[i].password === password) {
return true;
}
}
return false;
}
function loginButton () {
let loginButton = document.querySelector("#loginButton");
loginButton.addEventListener("click", function() {
let userName = document.querySelector("#user");
let passWord = document.querySelector("#pass");
signIn(userName.value, passWord.value);
});
}
loginButton();
function displayNewsFeed () {
let socialPostsSection = document.querySelector("#socialPosts");
newsFeed.forEach(function (posts) {
let socialPosts = document.createElement("h4");
socialPosts.textContent = posts;
socialPostsSection.appendChild(socialPosts);
});
}
功能登录(用户名、密码){
if(用户验证(用户名、密码)){
displayNewsFeed();
}否则{
警报(“请检查用户名和密码”);
}
}
函数userValidation(用户名、密码){
for(设i=0;i
是关于上述代码中addEventListener块中的这个
关键字的上下文
this
的值将引用add event listener中的loginButton
,并且loginButton
没有登录方法,要使代码仍然工作,您需要通过执行以下操作绑定this
loginButton.addEventListener("click", function() {
let userName = document.querySelector("#user");
let passWord = document.querySelector("#pass");
this.signIn(userName.value, passWord.value);
}.bind(this));
现在,addEventListener块中的这个
将引用socialAppFunctions
对象,它将工作
loginButton.addEventListener("click", function() {
let userName = document.querySelector("#user");
let passWord = document.querySelector("#pass");
this.signIn(userName.value, passWord.value);
}.bind(this));