Полностью основной вопрос о ссылке JavaScript

function firstDayInPreviousMonth(yourDate) {
    var d = new Date(yourDate);
    d.setDate(1);
    d.setMonth(d.getMonth() - 1);
    return d;
}

РЕДАКТИРОВАТЬ: Хорошо ... Я определенно кое-что узнал здесь. Я думаю, что это самое простое решение, которое охватывает все случаи (и да, оно работает на январь):

function firstDayInPreviousMonth(yourDate) {
    return new Date(yourDate.getFullYear(), yourDate.getMonth() - 1, 1);
}
7
задан Ivan Nevostruev 23 October 2009 в 18:40
поделиться

4 ответа

Easier way:

var a = {'foo': []};
var b = a;

a['foo'].push(1);

console.log(b);

Output is the same.

Edit:

var a = {'foo': []};
var b = {};

for (var key in a) {
    if (a.hasOwnProperty(key)) {
        b[key] = [];
        for (var i = 0; i < a[key].length; i += 1) {
            b[key][i] = a[key][i];
        }
    }
}

a['foo'].push(1);

console.log(b);
0
ответ дан 7 December 2019 в 07:47
поделиться

Вы можете создать функцию « clone », которая создает новый объект на основе исходного объекта конструктор , а затем клонируйте эти исходные свойства объекта, также если они являются объектами:

function clone(obj){
  if(typeof(obj) != 'object' && obj != null) 
    return obj; // return the value itself if isn't an object
                // or null, since typeof  null == 'object';

    var temp = new obj.constructor();

    for(var key in obj)
        temp[key] = clone(obj[key]);
    return temp;
}


var a = {'foo': []};
var b = clone(a);

a['foo'].push(1);

console.log(b); // Object foo=[0]
4
ответ дан 7 December 2019 в 07:47
поделиться

As this will add support for deep-copying arrays in your code:

var a = {'foo': []};
var b = {};

for (var key in a) {
   if (Object.prototype.toString.call(b[key]) === "[object Array]") {
      b[key] = a[key].slice(0);
   } else {
      b[key] = a[key];
   }
}

a['foo'].push(1);

console.log(b);
0
ответ дан 7 December 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: