【问题标题】:How methods execute with respective to JavaScript Object方法如何执行与 JavaScript 对象相关的
【发布时间】: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
    }

现在我正在创建这个类的两个对象。 myObj1myObj2

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);

当我创建myObj1myObj2 时,我的代码将到达MyFunction 类,并且类中的所有方法(如someFunctionsomeFunction2getData)都将执行参考各自的参数。

我的问题是

  1. 执行 Javascript 类之后,对象发生了什么。
  2. 如果内部存在的所有方法都将由var myObj1 = new MyFunction(args1); 执行,那么何时使用myObj1.someFunction()

我错过了什么吗?

【问题讨论】:

  • 是的,您的someFunctionsomeFunction2 缺少var 声明。或者更确切地说,如果您想将它们用作方法,missing this.… property assignments
  • 使用第三种方式,对象不会发生任何事情,因为它没有存储在任何地方,因此无法从中调用方法或对其进行任何操作。
  • @Bergi 感谢您对第三个对象声明的解释。

标签: javascript class methods


【解决方案1】:

如果 var myObj1 = new MyFunction(args1); 中存在的所有方法都将执行

这就是你理解错误的地方。不,除非你打电话给他们,否则他们不会。

函数只有在你这样做时才会被调用

myObj1.someFunction()

【讨论】:

  • 我完全同意调用函数。这行将创建一个对象myObj1 = new MyFunction(args1);Myfunction,但是当它转到 myfunction 时,我的函数中存在的所有方法都将同时执行。
  • @shankysingh 再一次,直到你打电话给他们。
  • 好的。如果可以的话,我会尝试创建一个小提琴。感谢您的建议。
  • 请检查这个小提琴。 jsfiddle.net/Arsenal/vcxw24x1/1 我传递 args 并在 html 中创建对象。它正在执行。请看一下
猜你喜欢
  • 2021-08-18
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
相关资源
最近更新 更多