Javascript 为什么在eval时没有定义is函数?

Javascript 为什么在eval时没有定义is函数?,javascript,vue.js,vue-component,Javascript,Vue.js,Vue Component,我有以下Pokemon.vue文件: <template> <div class="pokemon"> <h1>Pokemon Overview</h1> <div class v-for="pokemon in pokemonArray" :key="pokemon.id"> <p>{{ pokemon.name }}</p&

我有以下Pokemon.vue文件:

<template>
  <div class="pokemon">
    <h1>Pokemon Overview</h1>
    <div class v-for="pokemon in pokemonArray" :key="pokemon.id">
      <p>{{ pokemon.name }}</p>
      <p>{{ pokemon.number }}</p>
      <p>{{ pokemon.height }}</p>
      <p>{{ pokemon.weight }}</p>
      <p>{{ pokemon.types }}</p>
    </div>
    <button @click="AddPokemon">AddPokemon</button>
  </div>
</template>

<script>
import axios from "axios";
import db from "@/firebase/init";
export default {
  name: "Pokemon",
  data() {
    return {
      pokemonArray: [],
    };
  },
  methods: {
    CapitalizeFirstLetter(string) {
      return string.charAt(0).toUpperCase() + string.slice(1);
    },
    AddPokemon() {
      for (var i = 520; i < 524; i++) {
        axios.get("https://pokeapi.co/api/v2/pokemon/" + i).then((response) => {
          var types = [];
          for (var j = 0; j < response.data.types.length; j++) {
            types.push(response.data.types[j].type.name);
          }
          db.collection("pokemon").add({
            number: i,
            name: CapitalizeFirstLetter(response.data.name),
            weight: response.data.weight / 10,
            height: response.data.height / 10,
            types: types,
            image:
              response.data.sprites.other["official-artwork"].front_default,
          });
        });
      }
    },
  },
  created() {
    //Fetch data from the firestore
    db.collection("pokemon")
      .get()
      .then((snapshot) => {
        snapshot.forEach((doc) => {
          let pokemon = doc.data();
          this.pokemonArray.push(pokemon);
        });
      });
  },
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>



口袋妖怪概述
{{pokemon.name}}

{{{pokemon.number}}

{{{pokemon.height}}

{{pokemon.weight}}

{{pokemon.types}}

添加口袋妖怪 从“axios”导入axios; 从“@/firebase/init”导入数据库; 导出默认值{ 名称:“口袋妖怪”, 数据(){ 返回{ 口袋妖怪:[], }; }, 方法:{ 大写第一个字母(字符串){ 返回string.charAt(0.toUpperCase()+string.slice(1); }, AddPokemon(){ 对于(变量i=520;i<524;i++){ axios.get(“https://pokeapi.co/api/v2/pokemon/“+i).然后((响应)=>{ var类型=[]; 对于(var j=0;j{ snapshot.forEach((doc)=>{ 让pokemon=doc.data(); 这个.pokemonArray.push(口袋妖怪); }); }); }, };
然而,当我点击运行AddPokemon函数的按钮时,我被击中了

评估时未定义大写首字母


我不明白为什么会这样。我显然遗漏了一些东西,但就我的理解而言,使用不同于“方法”的方法应该是好的,但事实可能并非如此?非常感谢您的帮助。

试试
这个。CapitalizeFirstLetter

试试
这个。CapitalizeFirstLetter
应该是
这个。CapitalizeFirstLetter

db.collection(“口袋妖怪”).add({
编号:i,
名称:this.firstletter(response.data.name),
重量:response.data.weight/10,
高度:response.data.height/10,
类型:类型,,
图片:
response.data.sprites.other[“官方艺术品”]。front_默认值,
});

应该是
这个。大写第一个字母

db.collection(“口袋妖怪”).add({
编号:i,
名称:this.firstletter(response.data.name),
重量:response.data.weight/10,
高度:response.data.height/10,
类型:类型,,
图片:
response.data.sprites.other[“官方艺术品”]。front_默认值,
});

您需要使用
this
来访问vue实例,例如,
this.CapitalizeFirstLetter(string)
您需要使用
this
来访问vue实例,例如,
this.CapitalizeFirstLetter(string)
当然。非常感谢Dan,Jeterson Miranda Gomes和andrei040191。我会确保的!我只想再等5分钟,等待选项可用。哦,当然。非常感谢Dan,Jeterson Miranda Gomes和andrei040191。我会确保的!我只是再等5分钟,等待选项可用。