在由另一个函数分配对象属性后访问它们

时间:2013-06-21 14:35:00

标签: javascript

我是Javascript的新手,我正在学习如何使用OOP主体。我坚持分配对象属性,然后再访问它们。 假设我有这个函数将属性赋给对象“Car”。

function assignProps()
{
Car.size="small";
Car.cost="expensive";
}

具有空属性的对象Car,因为它们是从函数中分配的。

var Car =
{
size:"",
cost:"",
returnSize: function()
            {
           return this.size;
            },
returnCost: function()
            {
           return this.cost;
            },

}

现在,我想调用赋值的函数,然后访问Car的属性。我试过这样做,但显然失败了:

function accessProps()
{

assignProps();
console.log(Car.returnSize());
console.log(Car.returnCost());

}

任何帮助将不胜感激。我有一种感觉,这可能与构造函数或原型有关,但由于有很多方法可以在Javascript中创建自定义对象,因此文档非常容易混淆。

编辑:“失败”是指它输出空白而不是新分配的值 编辑:我也试过这样做,它产生了相同的结果。

3 个答案:

答案 0 :(得分:1)

您的代码中存在一些错误:

var Car = {
   size:"",
   cost:""
}

如果你看这个小提琴:http://jsfiddle.net/JskBy/ 它按预期工作。

完整代码:

function assignProps() {
    Car.size="small";
    Car.cost="expensive";
}

var Car ={
    size:"",
    cost:""
}
function accessProps(){
  assignProps();
  console.log(Car.size);
}

assignProps();
accessProps();

答案 1 :(得分:0)

您的汽车对象初始化时出现语法错误,应为

var Car = { size: "", cost: "" };

答案 2 :(得分:0)

第18行,第14栏:额外的逗号。

第20行,第2栏:缺少分号。

尝试使用内置的JSLint / JSHint(例如带附加组件的Notepad ++)获取开发工具,它可能会帮助您解决此类调试问题。