Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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对象_Javascript_Nativescript_Nativescript Vue - Fatal编程技术网

在单独文件中使用Javascript对象

在单独文件中使用Javascript对象,javascript,nativescript,nativescript-vue,Javascript,Nativescript,Nativescript Vue,我正在使用Nativescript vue。我试图在我的应用程序中加入一些逻辑,它不显示任何html或任何东西,它只是一个进行计算的库。我不知道如何使用它,我一直收到错误消息 这是我试过的 rifle.js export function Rifle () { // no function name this.firstName = "hi"; } 还尝试了以下内容: const observableModule = require("tns-core-modules/data/o

我正在使用Nativescript vue。我试图在我的应用程序中加入一些逻辑,它不显示任何html或任何东西,它只是一个进行计算的库。我不知道如何使用它,我一直收到错误消息

这是我试过的

rifle.js

 export function Rifle () { // no function name
   this.firstName = "hi";
  }
还尝试了以下内容:

const observableModule = require("tns-core-modules/data/observable");


function Rifle () { // no function name
   const myRifle = observableModule.fromObject({
        firstName:"hello"
   })

   return myRifle;
  }

  module.exports = Rifle;
然后在我的App.js文件中导入它

import {Rifle} from "./ballisticlibrary/rifle";
我也试着用Require来代替

然后我尝试在vue方法中使用它,在点击按钮时调用

  GetRifle()
  {
     // return "hi";
   this.msg= this.Rifle.firstName;

  }
不断抛出以下错误:

Cannot read property 'firstName' of undefined"
System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onClick failed
System.err: TypeError: Cannot read property 'firstName' of undefined

这里的问题是
这个.firstName
。阅读以更好地理解如何在js中使用

  • 将注释移动到答案中以获得更好的格式*
我从未使用过vue,但我希望导出的值是函数或类。这意味着您需要在使用该类之前先创建该类的实例。 另外,我认为您不能使用“this”访问导入的类。你可以试试

// your rifle class
export function Rifle () {
    this.name = "AK-47";
    this.damage = 5;
    this.fire = () => {
        console.log('Bang bang, '+ this.damage + ' damage done by ' + this.name);
    }
}

// then import your rifle and instantiate it

const ak = new Rifle();
ak.fire();

// logs out Bang bang, 5 damage done by AK-47

我从未使用过vue,但我希望导出的值是函数或类。这意味着您需要在使用该类之前先创建该类的实例。另外,我认为您不能使用“this”访问导入的类。你可以试试。常量步枪=新步枪();this.msg=rifle.firstName@RainerPlumer这个成功了,导出函数Rifle(){//没有函数名this.firstName=“hi”;函数GetHelp(){return“Help”}你知道为什么我的函数GetHelp不能工作吗?非常感谢。一段时间以来,我一直在努力让它像这样工作,这就成功了。