var g = $('#go');
var z = $('#are');
我想让y class中的变量可用于alertData和hideData。
最简单的方法是什么?
var y = {
alertData: function (){
alert('z');
},
hideData: function (){
$(this).hide();
}
};
答案 0 :(得分:3)
你总是可以这样做:
var y = {
g : $('#go'),
z : $('#are'),
alertData: function (){
alert(this.z);
},
hideData: function (){
this.g.hide();
}
};
或
var y = {
alertData: function (elem){
alert(elem.prop('id'));
},
hideData: function (elem){
elem.hide();
}
};
var g = $('#go');
var z = $('#are');
y.alertData(g);
y.hideData(z);
如果您正在寻找可链接的方法,那么您应该使用$.fn
来创建方法。
答案 1 :(得分:0)
要么你可以制作g和z全局变量,那么它们将在你想要的任何函数中可用。
或者你可以在调用警报数据和隐藏数据时传入变量,这是首选方法,现在你的函数独立于全局变量,以后也可以在其他地方使用
答案 2 :(得分:0)
在y中创建两个局部变量并从外部分配它们,以便它们成为对象的一部分。通过这样做,您可以在y里面的任何地方使用它们。
答案 3 :(得分:0)
window.g = $('#go');
window.z = $('#are');
function somefunction(){
console.log(g);
console.log(z);
}
答案 4 :(得分:0)
像这样添加:
var y = {
g:"",
z:"",
alertData: function (){
alert(this.z);
},
hideData: function (){
this.g.hide();
}
};
并使用y.g = anything
和y.z = anything
答案 5 :(得分:0)
或者如果他们需要私密,这里是模块模式:
var y = (function() {
var g = $('#go');
var z = $('#are');
return {
alertData: function() {
alert(z);
}
hideData: function() {
z.hide();
}
}
}())
这将使g
和z
对上述自调用函数返回的对象中的所有函数可见,而y.z
(或y.g
)会引发错误
答案 6 :(得分:0)
定义一个简单的变量在javascript中变为全局,这就是为什么它不满足oops的属性,即封装。所以如果你运行它会起作用。:
g = $('<p>');
z = $('#are');
function somefunction(){
console.log(g);
console.log(z);
}
somefunction()
g和z成为全局变量..