2015-03-27 3 views
0

Отказ от ответственности: Я не хочу использовать конструкторы, и я не хочу использовать ключевое слово new. Я хочу сделать все это с помощью Object.create.Object.create with arguments

Вот код, у меня есть, что отлично работает:

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 } 

То, что я хотел бы сделать, это создать новый объект и передать в х и у всех в одной строке. Это возможно?

+1

выполните функцию, которая вызывает Object.create(), а затем другую информацию, необходимую экземпляру для однострочного. – dandavis

ответ

2

Вы можете использовать параметр свойства:

Object.create(vectorPrototype, { x: { value: 1 }, y: { value: 1 } }) 
+0

Это хорошо. Наверное, я смущен, почему мне нужно указать 'значение'. Это какой-то стандартизированный способ, что это всегда делается? – ApathyBear

+0

Да, это, как вы определяете значение по умолчанию. thats часть свойств, которые вы можете дать 'x', вместе с возможностью записи, конфигурированием и т. д. .. проверьте эту ссылку https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create – eladcon

-1

Вы можете создать объект, как это:

var v1 = {x:1, y:1}; 
0

Off верхней части моей шляпы:

function Vector(x, y) { 
    var prototype = { 
    x: null, 
    y: null 
    } ; 
    var ret = Object.create(prototype); 
    ret.x = x; 
    ret.y = y; 
    return ret; 
} 

Это должно работать с new, а также без него. Тем не менее, я не уверен, что это классифицируется как «не конструктор» с вашей точки зрения.