我的对象中有一个函数。
我想从另一个函数访问此函数的变量。任何人都可以帮助我吗?
这是我的示例代码。 任何帮助将不胜感激。感谢。
var drops= {
hoverClass: "hoverme",
greedy: true,
accept: "#mini",
drop: function(event,ui){
var droppedOn2 = $(this);
var dropped2 = $(ui.draggable);
alert(droppedOn2.attr('id')); alert(dropped2.attr('id'));
$(dropped2).appendTo(droppedOn2).draggable();
},
over: function(event, ui){
console.log("buraya geliyorum > " + this.id);
}
};
$('#hebelek').sortable({
connectWith: '#hebelek',
cursor: 'pointer'
}).droppable({
accept: '#gridIcon1-2, #gridIcon2-2, #widgetIcon',
activeClass: 'highlight',
drop: function(event, ui) {
var ilk = drops.droppedOn2;
var droppedOn = $(this);
var dropped = $(ui.draggable).clone();
var fileName = dropped.attr('id');
alert(droppedOn.attr('id')); alert(fileName);
if (fileName == "gridIcon1-2"){
$(grid1_2Div).appendTo(droppedOn).find('.gridcell').droppable(drops)
};
if (fileName == "gridIcon2-2") {
$(grid2_2Div).appendTo(droppedOn).find('.gridcell').droppable(drops)
};
if ((fileName == "widgetIcon") && (droppedOn.attr('id') == "hebelek")) {
$(widgetDiv).appendTo("I WANT TO USE DROOPEDON2 ON HERE")
};
}
});
答案 0 :(得分:1)
为两个函数创建一个公共范围(函数包装器会这样做),并在同一范围内创建一个变量,如下所示:
(function () {
var x = 5,
f1 = function(){
console.log(x);
},
f2 = function(){
console.log(x);
};
})();
答案 1 :(得分:0)
你做不到。变量的范围限定为声明它们的函数。如果要从两个不同的函数访问变量,可以在两个函数之外声明它,并从它们中访问它。例如:
var sharedVariable = 'something';
function a() {
sharedVariable = 'a';
}
function b() {
alert(sharedVariable);
}
答案 2 :(得分:0)
要使函数A中计算的变量在函数B中可见,您有三个选择:
function A()
{
var rand_num = calculate_random_number();
B(rand_num);
}
function B(r)
{
use_rand_num(r);
}