Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 代码1不起作用,但另一个不起作用。第一个代码有什么问题?_Javascript - Fatal编程技术网

Javascript 代码1不起作用,但另一个不起作用。第一个代码有什么问题?

Javascript 代码1不起作用,但另一个不起作用。第一个代码有什么问题?,javascript,Javascript,我正在努力学习javascript。就我个人而言,我不知道下面的目标代码有什么问题。我得到一个错误,说: 此.sign不是一个函数 let socialAppFunctions={ displayNewsFeed:函数(){ 让socialPostsSection=document.querySelector(“socialPosts”); forEach(函数(posts){ 让socialPosts=document.createElement(“h4”); socialPosts.text

我正在努力学习javascript。就我个人而言,我不知道下面的目标代码有什么问题。我得到一个错误,说:

此.sign不是一个函数

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));