带参数的Object.create

时间:2015-03-27 20:05:14

标签: javascript object arguments prototype

免责声明:我不想使用构造函数,我不想使用关键字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全部传入一行。这可能吗?

3 个答案:

答案 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};