2016-07-26 11 views
0

nenne ich die folgende Funktion ein neues CSS-Objekt zu erstellen:Wie werden zwei Arten von Parametern innerhalb einer Funktion verwendet?

set(
    dot, { 
     x: mX, 
     y: mY, 
     force3D: !0 
    } 
); 


set: function(el) { 
    alert(el); 

    var dot = $(el).css('-webkit-transform', 'translate3d(' + x + ', ' + y + ', ' + z + ')'); 
    return dot; 
} 

Jetzt habe ich frage mich, wie der erste Parameter der Funktion Set bekommen, um genauer zu sein: dot. Ich habe es schon versucht: alert (el); aber das wird mir eine Warnung mit [object Object] geben. Ich weiß, dass Sie auf die Objektoptionen zugreifen können, indem Sie el.x verwenden, aber wie auf den ersten Parameter zugegriffen wird, den ich nicht kenne.

Kann mir jemand helfen. Danke vielmals!

+0

'el === dot'. Sie sehen '[object Object]', weil 'alert' es in eine Zeichenkette umwandelt. Do 'console.log (el)' und öffne deine Konsole (F12 auf Windows, s Opt + Cmd + I auf OSX) –

+0

Das funktioniert yeah. Nur wenn ich alle Parameter zum Konsolenlog hinzufüge, sind die letzten 3 (vom Objekt) undefiniert: 'console.log (el, el.x, el.y, el.z);' – Caspert

+0

Fehlt mir hier etwas? 'arguments [0]' ist 'el',' arguments [1] .x' ist dein 'x', usw. [Siehe docs] (https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Referenz/Funktionen/Argumente). – bishop

Antwort

2

Ist es das, was Sie versuchen?

set = function(el) { 
 
    console.log(el.x); // You can access the properties like this 
 
    console.log(el.y); 
 
    console.log(el.force3D); 
 
    
 
    return dot; 
 
}; 
 

 
// Build the params 
 
var dot = { 
 
    x: 'asdf', 
 
    y: 'asdf', 
 
    force3D: !0 
 
}; 
 

 
// Call the set() method 
 
set(dot);

1

Ich muss etwas fehlen, aber wenn Sie versuchen, zuzugreifen, was Sie senden, nennen nur einen formalen Parameter:

set = function(el, params) { 
 
    var dot = $(el).css('-webkit-transform', 'translate3d(' + params.x + ', ' + params.y + ', ' + params.z + ')'); 
 
    return dot; 
 
} 
 

 
set(dot, { x:1.0, y:2.1, z:0.1 });

Oder verwenden Sie arguments, wenn Sie keine formalen benannten Parameter möchten.

Verwandte Themen