3
var g = $('#go');
var z = $('#are');

我有变量我想在 y 类中提供给 alertData 和 hideData。

最简单的方法是什么?

var y = {    

    alertData: function (){
        alert('z');      
    },
    hideData: function (){
        $(this).hide();
    } 

};
4

7 回答 7

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来创建方法。

于 2013-06-15T13:12:41.667 回答
0

或者如果他们需要私有,这里是模块模式:

var y = (function() {
    var g = $('#go');
    var z = $('#are');
    return {
        alertData: function() {
            alert(z);
        }
        hideData: function() {
            z.hide();
        }
    }
}())

这将使上述自调用函数返回的对象中的所有函数都可见,而g(或)抛出错误。zy.zy.g

于 2013-06-15T13:30:17.037 回答
0

在 javascript 中定义一个简单的变量成为全局变量,这就是为什么它不满足 oops 的属性,即封装。因此,如果您运行它,它将起作用。:

g = $('<p>');
z = $('#are');

function somefunction(){
 console.log(g);
 console.log(z);
}

somefunction()

g 和 z 成为全局变量..

于 2013-06-15T13:30:52.693 回答
0

要么你可以使 g 和 z 全局变量,然后它们将在你想要的任何函数中可用。

或者您可以在调用警报数据和隐藏数据时传入变量,这是首选方法,现在您的函数独立于全局变量,以后也可以在其他地方使用

于 2013-06-15T13:06:51.507 回答
0

在 y 中创建两个局部变量并从外部分配它们,以便它们成为对象的一部分。通过这样做,您可以在 y 中随心所欲地使用它们。

于 2013-06-15T13:09:33.937 回答
0
window.g = $('#go');
window.z = $('#are');

function somefunction(){
   console.log(g);
   console.log(z);
}
于 2013-06-15T13:12:01.637 回答
0

像这样添加它:

var y = {    
    g:"",
    z:"",
    alertData: function (){
        alert(this.z);      
    },
    hideData: function (){
        this.g.hide();
    } 

};

y.g = anything并使用和分配值y.z = anything

于 2013-06-15T13:17:32.153 回答