免责声明:我不想使用构造函数,我不想使用关键字new
。我想用Object.create做这一切。
这是我的代码,完全正常:
var vectorPrototype = {
x: null,
y: null
}
var v1 = Object.create(vectorPrototype) // line 6
v1.x = 1
v1.y = 1
console.log(v1);
// { x: 1, y: 1 }
我想要做的是创建一个新对象并将x和y全部传入一行。这可能吗?
答案 0 :(得分:2)
您可以使用属性参数:
Object.create(vectorPrototype, { x: { value: 1 }, y: { value: 1 } })
答案 1 :(得分:0)
脱离我的帽子:
function Vector(x, y) {
var prototype = {
x: null,
y: null
} ;
var ret = Object.create(prototype);
ret.x = x;
ret.y = y;
return ret;
}
这应该适用于new
以及没有它。也就是说,我不确定在你的观点中这是否归类为“不是构造函数”。
答案 2 :(得分:-1)
你可以像这样创建对象:
var v1 = {x:1, y:1};