5

I'm calling a function like this:

myfunc($tab, {'top-left', 'bottom-left'}, defaults.tabRounded);

The function definition is:

function myfunc(obj, properties, value) {

Yet I get the error "Invalid object initializer". Is this because of the json argument? Or something else?

1
  • 1
    What do you think JSON is exactly? There is no JSON in your code snippet. Commented Jul 18, 2011 at 12:57

4 Answers 4

6

Replace

myfunc($tab, {'top-left', 'bottom-left'}, defaults.tabRounded);

With

myfunc($tab, ['top-left', 'bottom-left'], defaults.tabRounded);

{'top-left', 'bottom-left'} is not an object, but {'top-left': 0, 'bottom-left': 10} is an object. I assumed you might have wanted an array instead of an object.

Sign up to request clarification or add additional context in comments.

Comments

2

JavaScript objects are key/value pairs:

{
    'top-left': 333,
    'bottom-left': 444
}

https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Using_Object_Initializers

Comments

0

Probably you want to pass array, not object to the function:

myfunc($tab, ['top-left', 'bottom-left'], defaults.tabRounded);

Otherwise if you want to pass object you need to specify values for the keys. Something like:

myfunc($tab, {'top-left': 100, 'bottom-left': 100}, defaults.tabRounded);

Comments

0

You need to name the properties like { x: 'foo', y: 'bar' }, as these are always key-value pairs.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.