调用Javascript函数并返回响应

时间:2017-02-18 04:11:36

标签: javascript

我最近开始使用Javascript,我看到了这个问题,但没有解释这个问题。我有以下Javascript代码:

var A = (function(){
  function Person(name){
    this.name = name;
  }

  var m = function(){
    return "Hello " + this.name;
  };

  Person.prototype.getGreeting = m;

  return Person;
})();

我需要写什么才能调用上面的代码并让它返回“Hello World”?我仍然在学习如此宽恕我的无知。

5 个答案:

答案 0 :(得分:1)

此代码将Person对象定义为A,其构造函数接受要在" greeting"中打印的参数。所以在这段代码之后你可以写下类似的东西:

var somePerson = new A('world');
console.log(somePerson.getGreeting());

这将在名为A的变量中创建Person(包装somePerson)的实例,并在该实例上记录getGreeting()的输出。

通过更加一致的间距和压痕,您可以更清楚地看到结构。 Example

答案 1 :(得分:1)



    var A=(function(){
      function Person(name){
        this.name=name;
      }
      var m=function(){
        return"Hello "+this.name;
      };

      Person.prototype.getGreeting=m;

      return Person;
    })();

    var B = new A();
    B.name = "World";
    console.log(B.getGreeting());




答案 2 :(得分:1)

您可以从简单开始并构建完整示例:

function Person(name){
  this.name = name;
}

var m = function(){
  return "Hello " + this.name;
};

Person.prototype.getGreeting = m;

var p = new Person('anybody');

console.log(p.getGreeting());

如果你来自另一种编程语言,那么一本好书就是Douglas Crockford撰写的“JavaScript:The Good Parts”。在那之后,大卫·赫尔曼(David Herman)读到了“有效的JavaScript”。这些将比我们在此处的任何答案更好地回答您关于代码示例的问题。

答案 3 :(得分:0)

new A("World").getGreeting()

A的定义创建一个函数,然后立即调用它。该函数创建另一个名为Person的函数。此函数是一个JavaScript构造函数,可用于通过" new Person"创建一个新对象。 Person构造函数接受name参数并在内部存储它。它还将Person函数原型的getGreeting成员设置为打印" Hello"然后是人的名字。

要使用,请执行新的A(" World")来调用构造函数A(实际上是Person),传入World,然后调用生成的对象的getGreeting方法,这将调用getGreeting原型的功能。

答案 4 :(得分:0)

您的代码使用称为Immediately-Invoked Function Expression的惯用法,它将变量/函数Personm保密/隐藏在该匿名函数的范围内。然后,您立即调用匿名函数,该函数设置Player类,然后返回它。结果(Player构造函数本身)存储在A中。 (JavaScript实际上没有类,但这是另一个讨论。)

要创建此类的实例,您可以执行以下操作:

var joe = new A("Joe");

然后你可以使用joe对象(Person / A类的一个实例):

console.log(joe.getGreeting()); // Hello Joe

完整的工作示例:

var A = (function(){
  function Person(name){
    this.name = name;
  }

  var m = function(){
    return "Hello " + this.name;
  };

  Person.prototype.getGreeting = m;

  return Person;
})();

var joe = new A("Joe");

console.log(joe.getGreeting());