【发布时间】:2014-02-24 11:15:23
【问题描述】:
我试图声明一个对象函数,但似乎无法让它工作。我不断收到未捕获的语法错误:意外的令牌。这发生在尝试定义我的方法的构造函数方法的行上。代码如下。
function Car(make, model, year, owner) {
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
this.setOwner: function (newOwner){
this.owner = newOwner;
}
}
var AndrewsCar = new Car("Ford","Focus", 1999, "Andrew");
AndrewsCar.setOwner("Bobbie");
document.writeln(AndrewsCar.owner);
这个呢。我也可以这样声明一个函数吗?
Car.setOwner = function (newOwner){
this.owner = newOwner;
}
我一直在尝试,当我尝试调用它时,我收到了 TypeDef 错误。
【问题讨论】:
-
你应该在
Car构造函数之外定义Car.setOwner:function Car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; }; Car.setOwner = function (newOwner){ this.owner = newOwner; } -
我得到 Object#
没有方法 'setOwner'。 -
其实我理解你的问题,你应该调用
c = new Car(...),因为Car是构造函数,所以这个例子确实有效:function Car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; this.setOwner = function (newOwner){ this.owner = newOwner; } } undefined c = new Car('foo', 'bar', 1954, 'asdsa') Car {make: "foo", model: "bar", year: 1954, owner: "asdsa", setOwner: function} c.setOwner('Lala') undefined c.owner "Lala"
标签: javascript methods declaration