我可以在变量上调用“.log”吗?

时间:2015-03-16 05:35:19

标签: javascript asp.net function math

我是javascript的新手并且搜索了所有的答案,但没有用,我的时间很短。我正在更新一些代码,他们在函数中有以下代码。

var mbytes = 512;
mbytes = parseFloat(mbytes);
var nbbytes = mbytes.log(1024);

我知道应该使用Math.log()函数。它适用于旧代码,但是当我使用变量mbytes.log编写自己的函数时,我得到一个“Uncaught TypeError:Undefined不是函数”。我知道这是因为mbytes不是函数而是变量。对我来说没有意义,为什么它在旧代码中工作正常,但如果我现在尝试这样做会出错?是否可以在变量上调用.log函数?

1 个答案:

答案 0 :(得分:4)

由于您有一个flot值,因此其类型为Number,而Number中没有名为log的方法。

但您可以轻松地将方法添加到数字的prototype object并在那里实现逻辑

Number.prototype.log = function (param) {
    var value = this;
    //do your logic here
    console.log(value, param)
    return Math.log(value)
}

var mbytes = 512;
mbytes = parseFloat(mbytes);
var nbbytes = mbytes.log(1024);
console.log(nbbytes)

演示:Fiddle