从JS中的另一个函数调用一个方法(TypeError异常)

时间:2014-08-05 09:28:10

标签: javascript

我想这真的是一个新手错误,但我无法让它运行起来。 我有一个"计算器"对象t,它包含很多计算值的函数。我需要使用我的"计算器"在另一个函数中获取某些值的对象。 我将其条带化为以下内容,但是当我调用t.hello()方法时,我得到了一个TypeError异常。有任何想法吗?

 var t = new T();
 two();

 function T() {
     function hello() {
         alert("hello");
     }
 }

 function two() {

     t.hello();

 }

http://jsfiddle.net/4Cc4F/

3 个答案:

答案 0 :(得分:3)

您需要返回包含该函数的对象:

function T() {
    return {
        'hello': function () {
            alert("hello");
        }
    }
}

或者明确地将其定义为T范围内的函数:

function T() {
    this.hello = function() {
        alert("hello");
    }
}

Fiddle

答案 1 :(得分:1)

函数hello位于T的本地范围内。

像这样定义T

function T() {
     this.hello = function() {
         alert("hello");
     }
 }

答案 2 :(得分:0)

试试这个,

var t = new T();
two();
function T() {
     this.hello = function () {
         alert("hello");
     }
 }    
 function two() {    
     t.hello();    
 } 

请参阅:http://jsfiddle.net/4Cc4F/2/