使用var与函数声明javascript对象有什么区别?

ran*_*ble 7 javascript oop var function object

我是一个困惑的新手.我在教程中读到你创建一个像这样的javascript对象:

function myObject() {
    this.myProperty = "a string";
    this.myMethod = function () {
        //Method code
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我在其他地方读到你创建一个像这样的对象:

var myObject = {
    myProperty: "a string",
    myMethod : function () {
        //Method code
    }
}
Run Code Online (Sandbox Code Playgroud)

两者之间的(非主观)差异是什么?是否有正式的正确方式和错误的方式?

Mik*_*scu 5

两个声明都是正确的,但它们具有不同的语义.

第一种声明允许您创建对象的实例:

var t = new myObject();
// then use t
t.myProperty = "some value";

var otherT = new myObject();
otherT.myProperty = "some other value";
Run Code Online (Sandbox Code Playgroud)

第二个几乎就像一个静态对象:

myObject.myProperty = "some value";
Run Code Online (Sandbox Code Playgroud)