试图了解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}
答案 0 :(得分:3)
因为......你没有调用这个函数。您正在记录函数本身,并且由于日志记录需要一个字符串,因此它调用内置的toString
方法,该方法将函数作为字符串返回。
尝试console.log(this.hasConnection());
答案 1 :(得分:0)
当你
consloe.log(this.hasConnection);
您正在记录实际功能,而不是调用该功能的结果。尝试将此行更改为
consloe.log(this.hasConnection());