javascript - 从不同的文件创建 javascript 对象

标签 javascript class object

一段时间以来,我一直在尝试使用 javascript,但我希望它是“面向对象的”,因此我尝试在不同的文件中创建不同的 javascript 类,并尝试创建一个对象并在其中调用它的方法一个不同的文件功能,但它似乎不起作用。

这是我目前所拥有的:

人.js

function Person(name, age, gender)
{
    this.age = age;
    this.name = name;
    this.gender = gender;

    this.job;

    this.setJob = function(job)
    {
        this.job = job;
    }

    this.getAge = function()
    {
        return this.age;
    }

    this.getName = function()
    {
        return this.name;
    }

    this.getGender = function()
    {
        return this.gender;
    }
}

工作.js

function Job(title)
{
    this.title = title;
    this.description;

    this.setDescription = function(description)
    {
        this.description = description;
    }
}

主.js

function  main()
{
    var employee = new Person("Richard", 23, male);
    document.getElementById("mainBody").innerHTML = employee.getName();
}

index.html

<!DOCTYPE HTML>
<HTML>
<head>
    <title>javascript test</title>
    <script src="main.js" type="javascript"></script>
</head>
<body>
    <p id="mainBody"></p>
</body>
</HTML>

如有任何帮助或建议,我们将不胜感激。

非常感谢

编辑: 非常感谢所有的答案和建议,但是,我已经包含了我所有的 javascript 文件,但它仍然不起作用......

最佳答案

目前 JavaScript 还不够聪明,无法在没有帮助的情况下找到您的依赖项。

你需要:

<!DOCTYPE HTML>
<HTML>
<head>
    <title>javascript test</title>
    <script src="person.js" type="javascript"></script>
    <script src="Job.js" type="javascript"></script>
    <script src="main.js" type="javascript"></script>
</head>
<body>
    <p id="mainBody"></p>
</body>
</HTML>

注意:

如果你想按需加载依赖项,那么你可以使用 AMD (异步模块定义)与 requirejs或其他东西。

使用 AMD,您可以定义如下内容:

define(['Job', 'person'], function (job, person) {
    //Define the module value by returning a value.
    return function () {};
});

define 方法接受两个参数:依赖项和定义模块的函数。 加载所有依赖项后,它们将作为参数传递给模块定义所在的函数。

还有一件事需要注意,PersonJob 不是类。它们只是根据定义中的规则生成对象的函数(构造函数)。


关于javascript - 从不同的文件创建 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14335526/

相关文章:

java - 如何将 ArrayList<Class> 从一个 Activity 传递到另一个 Activity ?

javascript - 如果特定单词出现在编辑器中,则更改它们的颜色

python - argparse - 为什么代码在没有被调用的情况下被执行?

c++ - 在类中创建 vector 的 vector (二维数组)- 错误 :C++ requires a type specifier for all declarations

java - 在 Java 中,如何在一个类中使用另一个类的方法?

C++类包含 undefined reference

php - 防止对象下载、保存、缩放等

javascript - 如何检测div是否被javascript隐藏

Javascript - 如何将类工厂定义为 Extjs 风格?

javascript - BackboneJS如何删除模型数组的项目