Лучшим способом обработки дат в knockoutjs является использование библиотеки времени и обработки дат типа босса. Вы можете легко иметь дело с датами типа / Date (-62135578800000) /. Нет необходимости беспокоиться о том, как дата сериализации в контроллере.
function jsonToDate(date,format) {
return moment(date).format(format);
}
использовать его как
var formattedDate = jsonToDate(date,'MM/DD/YYYY')
momentjs поддерживает множество форматов времени дат и функции полезности в датах.
Как это справедливо указало
__proto__
, фактический объект, который используется в цепочке поиска для разрешения методов, и т.д. прототип является объектом, который используется для создания__proto__
, когда Вы создаете объект с новым:( new Foo ).__proto__ === Foo.prototype; ( new Foo ).prototype === undefined;
Мы можем далее отметить, что __proto__
свойство объекта, созданного с помощью функционального конструктора, указывает на ячейку памяти, на которую указывают к прототип свойство того соответствующего конструктора.
, Если мы изменяем ячейку памяти , прототип из функции конструктора, __proto__
из производного объекта все еще продолжит указывать на исходное адресное пространство. Поэтому для предоставления доступа к общей собственности доступной вниз цепочка наследования всегда добавляйте свойство к прототипу функции конструктора , вместо того, чтобы повторно инициализировать его (который изменил бы его адрес памяти).
Рассматривают следующий пример:
function Human(){
this.speed = 25;
}
var himansh = new Human();
Human.prototype.showSpeed = function(){
return this.speed;
}
himansh.__proto__ === Human.prototype; //true
himansh.showSpeed(); //25
//now re-initialzing the Human.prototype aka changing its memory location
Human.prototype = {lhs: 2, rhs:3}
//himansh.__proto__ will still continue to point towards the same original memory location.
himansh.__proto__ === Human.prototype; //false
himansh.showSpeed(); //25
Существует только один объект, который используется для объединения в цепочку protypal. Этот объект, очевидно, имеет имя и значение: __proto__
его имя, и prototype
его значение. Это - все.
для создания еще легче схватить посмотрите на схему на верхней части этого сообщения (Схема dmitry soshnikov), Вы никогда не будете находить __proto__
точки к чему-то еще кроме prototype
как его значение.
суть - это: __proto__
имя, которое ссылается на объект prototypal, и prototype
фактический объект prototypal.
Это похоже на высказывание:
var x = {name: 'john'};
x
имя объекта (указатель), и {name: 'john'}
фактический объект (значение данных).
ПРИМЕЧАНИЕ: это просто в широком масштабе упрощенная подсказка о том, как они связаны на высоком уровне.