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

Can I call ".log" on a variable

我是 javascript 的新手,我到处搜索这个问题的答案,但无济于事,而且我的时间很紧。我正在更新一些代码,他们在一个函数中有以下代码。

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

我理解它应该使用 Math.log() 函数。它适用于旧代码,但是当我使用变量 mbytes.log 编写自己的函数时,我得到一个 "Uncaught TypeError: Undefined is not a function"。我知道这是因为 mbytes 不是函数而是变量。我不明白为什么它在旧代码中工作正常但如果我现在尝试这样做会出错?是否可以在变量上调用 .log 函数?

因为你有一个 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