我想覆盖length
函数:
function x_funct(){
this.length = function(){
console.log("hello");
return 8;
}
};
var x = new x_funct();
console.log(x.length);
当使用节点执行时,它会打印[Function]
。我期待看到hello
。
答案 0 :(得分:1)
您声明.length
是一个函数,而不是一个value属性。您可以使用Object.defineProperty
Object.defineProperty(this, 'length', { get: function() { return val; } });
答案 1 :(得分:0)
因为你所展示的是这个功能。
函数是Javascript中的对象,因此如果您尝试打印x.length
,则打印函数本身,而不是它的结果。
如果要打印结果,应编写x.length()