所以我正在设计一个成绩册界面,我有一门课程定义为:
<script>
course = new Object();
var name;
var gradingareas;
var finalgrade;
</script>
然后,稍后我想创建一个新示例:
var gradingareas = new Array("Homework", "Classwork", "Exams");
course1 = new course("CS1500", gradingareas, 85);
我也试过了,没有在前面放var,但没有效果。我得到了一个“未捕获的TypeError:对象不是一个函数”。我对Java脚本非常陌生,所以我甚至不知道我这样做的方式是否正确。如有任何帮助,我们将不胜感激。
4条答案
按热度按时间i1icjdpr1#
您的现有代码:
变量和对象之间没有任何联系。
看起来你想要更像这样的东西:
然后:
注意,在命名构造函数时使用了大写字母。这是JS社区的惯例。
2jcobegt2#
JS是原型的,而不是基于类的,如果您是新手,那么立即学习它比试图混淆经典的继承模型更有好处,然而,经典继承在JS中仍然存在并且很好。
无论如何,要回答您将如何访问变量:
course1.name
与上面的示例一起工作得很好。如果您想要将数据私有化,您可以使用闭包来采用这种方法:
然后示例化一个新对象:
var course = new Course('Programming with JavaScript', 'A');
并开始使用所有这些私人数据:
course.get('name');
当然,您可能也希望setter操作该数据。)
pzfprimi3#
您描述的代码执行以下操作:
这些声明的变量不会自动连接到对象。如果希望在对象上声明这些属性,您有两个选择:
1.声明为对象的属性
1.在对象的原型上声明
示例1:声明为对象的属性:
示例2:在原型上声明:
5n0oy7gb4#
要创建一个带有构造函数和默认值的非常简单的对象,您可以执行以下操作:
PS:如果你在创建一个外部类,创建一个构造函数的名称与类的同名是一个很好的做法。