创建对象会产生意外结果

时间:2015-05-06 14:27:54

标签: javascript

我是js的新手。 我正在创建一个对象但不知何故它不会在控制台中给出结果。 这是我的代码。

var car=new object();
car.name="Mercedes Benz";
car.speed=220;
car.showNameAndSpeed=function(){
console.log("The name of the car is " + car.name + " and the topspeed is " + car.speed());
    };

car.showNameAndSpeed();

它说对象没有定义。我做错了什么?谢谢。

3 个答案:

答案 0 :(得分:7)

您的问题是object需要大写 - object在JavaScript中不是一件事,但Object是。

你想:

var car=new Object();

作为w3schools says,JavaScript标识符区分大小写:

  

所有JavaScript标识符都区分大小写。

     

变量lastNamelastname是两个不同的变量。

所以objectObject是两个不同的东西,你想要Object - JS中几乎所有内容都以Object开头。

More on Object here

此外,正如ozil指出的那样,您应该将car.speed()更改为car.speed。您之前已将car.speed设置为220,因此它不是一项功能。 car.speed()尝试将其视为一项功能,这将导致问题。

总而言之,这段代码就是你想要的:

var car=new Object();
car.name="Mercedes Benz";
car.speed=220;
car.showNameAndSpeed=function(){
console.log("The name of the car is " + car.name + " and the topspeed is " + car.speed);
    };

car.showNameAndSpeed();

答案 1 :(得分:2)

在我看来,创建对象的更好方法是:

var car = {
    name: "Mercedes Benz",    
    speed: 220,
    showNameAndSpeed: function(){
        var self = this;
        console.log("The name of the car is " + self.name + " and the topspeed is " + self.speed);  
    }
}

car.showNameAndSpeed(); //Output: The name of the car is Mercedes Benz and the topspeed is 220

Fiddle

答案 2 :(得分:0)

object需要大写,car.speed()需要car.speedspeed is not a function