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

Can I call ".log" on a variable

本文关键字:log 变量 调用 我可以      更新时间:2023-09-26

我是javascript的新手,并四处寻找答案,但无济于事,而且我的时间很短。 我正在更新一些代码,它们在函数中具有以下代码。

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

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

由于您有一个 flot 值,因此它是 Number 的类型,并且Number中没有一个名为 log 的方法。

但是您可以轻松地将方法添加到数字的原型对象并在那里实现逻辑

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)

演示:小提琴

  • 对象原型
  • 继承和原型链