区分同名的属性和方法

Kid*_*ond 4 javascript naming prototype

如果我有一个命名的变量format和一个同名的方法,我将如何调用变量和方法?

use strict;

function Time() {
    this.format = 'x:y:z';
}

Time.prototype = {
    format: function (format) {

    }
}
Run Code Online (Sandbox Code Playgroud)

cdh*_*wie 6

您通常不能这样做,因为 JavaScript 中的方法包含函数属性之间没有区别——它们完全相同!您可以通过将函数分配给属性来创建方法。

这种特殊情况下,您可以通过原型访问函数对象并将其应用于对象,但这是一个可怕的技巧。

Time.prototype.format.apply(some_time_object);
Run Code Online (Sandbox Code Playgroud)

最好将方法和值存储在不同命名的属性中。