如下所述,如何在JavaScript中的另一个函数内调用函数

时间:2015-01-26 09:24:32

标签: javascript

我有一个代码

function person() {
   name =  "David";
   hello =  function() {
      console.log("I'm in hello");
   };
}

我想从外面调用hello函数。我怎样才能实现它?

5 个答案:

答案 0 :(得分:3)

hello(和name)分配到this中的person

function Person() {
   this.name = "David";
   this.hello = function() {
      console.log("I'm in hello");
   };
};

然后,您可以像这样访问函数:

var p = new Person();
p.hello();

this将变量分配给Person。这可以防止变量污染全局范围。

您还可以将参数传递给Person



function Person(name) {
  this.name = name;
  this.hello = function() {
    alert("Hello! I'm " + this.name + '!');
  };
};

var p = new Person("Fred");
p.hello();




答案 1 :(得分:2)

function person() {
   this.name =  "David";
   this.hello =  function() {
      console.log("I'm in hello");
   };
}
var personObj = new person();
personObj.hello ();

答案 2 :(得分:1)

你可以做的是:

function person() {
   name =  "David";
   this.hello =  function() {
      console.log("I'm in hello");
   };
}
var johnny = new person();
johnny.hello();

请参阅此文章:http://www.phpied.com/3-ways-to-define-a-javascript-class/

答案 3 :(得分:0)

function person() {
   name =  "David";
   this.hello =  function() {
      console.log("I'm in hello");
   };
}

var p = new person();
p.hello();

  function person() {
       var obj={}; 
       obj.name =  "David";
       obj.hello =  function() {
          console.log("I'm in hello");
       };
       return obj;
    }

    var p = person();
    p.hello();

答案 4 :(得分:-3)

这是为了您的好奇心和清晰度:)。

您已在函数内声明了全局变量。直到您执行该函数,全局变量将不会存在且无法访问。一旦你调用了函数,就会定义并正确初始化全局变量,然后你可以从javascript中的任何作用域调用它们。

function person() {
   name =  "David";
   hello =  function() {
      console.log("I'm in hello");
   };
}

现在,为了从外部调用hello而不使用此类或类模式,您必须首先对person方法进行调用(方法执行)。看到这个:

person();console.log(person());,但不是console.log(person); 然后您可以轻松拨打hello();

  

注意:这是出于David的理解目的。请不要使用   你的javascript中任意全局变量。