2016-07-26 73 views
0

我调用下面的函数来创建一个新的CSS对象:如何在函数中使用两种类型的参数?

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; 
} 

现在我想知道如何得到的功能设定的第一个参数,更精确:DOT。 我已经尝试过:alert(el);但是这会给我一个[object Object]的警报。 我知道你可以通过使用el.x访问对象选项,但是如何访问我不知道的第一个参数。

有人可以帮我一把。非常感谢!

+0

'el === dot'。你看到'[object Object]',因为'alert'将它转换为一个字符串。做'console.log(el)'并打开你的控制台(F12在Window上,在OSX上是Opt + Cmd + I) –

+0

这是行得通的。只有当我将所有参数添加到控制台日志中,最后3个(来自对象)将是未定义的:'console.log(el,el.x,el.y,el.z);' – Caspert

+0

我在这里丢失了什么吗? 'arguments' [0]'是'el','arguments [1] .x'就是你的'x'等等[参见文档](https://developer.mozilla.org/en-US/docs/Web/的JavaScript /参考/函数/参数)。 – bishop

回答

2

这是你想要做的?

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

我必须失去了一些东西,但如果你想访问你送什么,只是名称的正式参数:

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 });

或使用arguments如果你不想要正式的命名参数。

相关问题