Javascript OOP函数打印为字符串

时间:2014-02-20 14:05:17

标签: javascript oop

试图了解javascript OOP,为什么这会导致测试方法打印整个函数定义,好像它是一个字符串?

var Myclass = function Myclass(){
    this.connection = make_ajax();
    this.hasConnection = function(){return this.connection};

    this.test = function(){
        console.log(this.hasConnection); 
    }
}
var x = new Myclass();
x.test();

结果:

log: function(){return this.connection}

2 个答案:

答案 0 :(得分:3)

因为......你没有调用这个函数。您正在记录函数本身,并且由于日志记录需要一个字符串,因此它调用内置的toString方法,该方法将函数作为字符串返回。

尝试console.log(this.hasConnection());

答案 1 :(得分:0)

当你

consloe.log(this.hasConnection);

您正在记录实际功能,而不是调用该功能的结果。尝试将此行更改为

consloe.log(this.hasConnection());