【发布时间】:2017-07-06 07:02:45
【问题描述】:
这是我的课
MyFunction = function(args) {
var parameter1 = args.parameter1;
var parameter2 = args.parameter2;
var ObjId = args.ID;
function getData(callback) {
// Some code for getting data;
}
someFunction = function() {
// Some calculation
}
someFunction2 = function() {
//Some calculation
}
现在我正在创建这个类的两个对象。 myObj1 和 myObj2
var args1 = {
parameter1 : "x",
parameter2 : "Y",
ObjId : "ID1"
}
var myObj1 = new MyFunction(args1);
var args2 = {
parameter1 : "x",
parameter2 : "Y",
ObjId : "ID1"
}
var myObj2 = new MyFunction(args2);
// Third way. Don't know it is correct or not.
new MyFunction(args2);
当我创建myObj1 或myObj2 时,我的代码将到达MyFunction 类,并且类中的所有方法(如someFunction、someFunction2 和getData)都将执行参考各自的参数。
我的问题是
- 执行 Javascript 类之后,对象发生了什么。
- 如果内部存在的所有方法都将由
var myObj1 = new MyFunction(args1);执行,那么何时使用myObj1.someFunction()
我错过了什么吗?
【问题讨论】:
-
是的,您的
someFunction和someFunction2缺少var声明。或者更确切地说,如果您想将它们用作方法,missingthis.…property assignments -
使用第三种方式,对象不会发生任何事情,因为它没有存储在任何地方,因此无法从中调用方法或对其进行任何操作。
-
@Bergi 感谢您对第三个对象声明的解释。
标签: javascript class methods