2014-02-06 4 views
0

У меня есть объектПродлить со значениями по умолчанию, если свойство не существует

myObject = { 
    fontFamily : 'Tahoma', 
    fontSize: '12', 
    color : '000000' 
} 

И по умолчанию Параметры

myDefaults = { 
    fontFamily : 'Tahoma', 
    fontSize: '15', 
    color : 'FF0000', 
    weight : 'bold', 
    decoration : 'underline' 
} 

А теперь я хочу, чтобы объединить их с jQuery.extend().

Мое правило слияния: Если свойство не определено в myObject, используйте свойство myDefaults. Я имею в виду, заполните пробелы с помощью myDefaults.

Я попытался использовать $.extend. Но я вижу неожиданные результаты. Теперь я смущен. Это что-то, что нельзя сделать с $.extend?

Мой Ожидаемый результат:

myObject = { 
    fontFamily : 'Tahoma', 
    fontSize: '12', 
    color : '000000', 
    weight : 'bold', 
    decoration : 'underline' 
} 

Спасибо.

+1

Вы не показывает нам, как вы пытались используй это , и вы не говорите, какие неожиданные результаты. Мы не можем читать ваши мысли, и мы не можем помочь, пока не узнаем. – Jon

+0

Я добавил ожидаемый результат вместо того, чтобы не знать, извините ... – user3253797

+1

Угадайте здесь, скорее всего, вы хотите «var result = $ .extend ({}, myDefaults, myObject)'. – Jon

ответ

0

Использование $.extend() как

myDefaults = { 
    fontFamily: 'Tahoma', 
    fontSize: '15', 
    color: 'FF0000', 
    weight: 'bold', 
    decoration: 'underline' 
} 

myObject = { 
    fontFamily: 'Tahoma', 
    fontSize: '12', 
    color: '000000' 
} 

myObject = $.extend({}, myDefaults, myObject) 

Демо: Fiddle

1

Проблема с вашим single quote после underline попробовать это,

myDefaults = { 
    fontFamily : 'Tahoma', 
    fontSize: '15', 
    color : 'FF0000', 
    weight : 'bold', 
    decoration : 'underline' 
    //// you missed -------^ 
} 
myObject = { 
    fontFamily : 'Tahoma', 
    fontSize: '12', 
    color : '000000' 
} 
myObject=$.extend({},myDefaults,myObject); 
console.log(myObject); 

Demo

+0

он переопределит все свойства в 'myObject' с тем, что в defautls –

+0

Спасибо, я исправил его. – user3253797

Смежные вопросы