定义javascript变量的正确方法?
下面的JavaScript代码是否具有正确的变量声明,或者是否有任何其他方式来定义它?我可以知道变量声明的这种方法吗定义javascript变量的正确方法?,javascript,Javascript,下面的JavaScript代码是否具有正确的变量声明,或者是否有任何其他方式来定义它?我可以知道变量声明的这种方法吗 var JQFUNCS = { runFunc: { "jsonp": { run: function (id) { var demobox = $('#' + id); demobox.html('<img id="loading" src="images/loading.gif" />');
var JQFUNCS = {
runFunc: {
"jsonp": {
run: function (id) {
var demobox = $('#' + id);
demobox.html('<img id="loading" src="images/loading.gif" />');
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", {
tags: "jquery",
tagmode: "any",
format: "json"
}, function (data) {
demobox.empty();
$.each(data.items, function (i, item) {
demobox.append('<a href="' + item.link + '" target="_blank"><img style="max-width:150px;" src="' + item.media.m + '" alt="' + item.title + '" title="' + item.title + '" />');
if (i == 10) return false;
});
$('#' + id + ' #loading').hide();
});
},
reset: function (id) {
$('#' + id).empty().hide();
}
}
}
}
var JQFUNCS={
runFunc:{
“jsonp”:{
运行:函数(id){
var demobox=$(“#”+id);
html(“”);
$.getJSON(“http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", {
标签:“jquery”,
tagmode:“任何”,
格式:“json”
},函数(数据){
demobox.empty();
$.each(data.items,function(i,item){
demobox.append(“”);
如果(i==10)返回false;
});
$(“#”+id+“#加载”).hide();
});
},
重置:功能(id){
$('#'+id).empty().hide();
}
}
}
}
这种变量声明方法称为对象文字
var objectLiteral = {
propertyOne: 1,
functionTwo: function() {
return 2;
}
};
使用:非常适合以更传统的方式封装属于一起的数据和功能。防止重复的变量名使全局命名空间混乱。仅提供对象的一个实例,除非使用对象复制
您还可以使用函数声明:
function funcDeclaration() {
this.propertyOne = 1;
this.functionTwo = function() {
return 2;
}
}
var obj = new funcDeclaration();
使用:允许实例化对象,非常类似于类。具有对象文字的所有灵活性加上一些
这里没有正确或错误的答案。其中一些是情境、惯例或偏好
你甚至可以将两者结合起来,通过使用一个自动执行函数(如果你试图模拟可见性修饰符)来变得非常棘手:
使用:专业和有趣=P不一定可读,而且肯定会让任何javascript开发新手大吃一惊。你说的是哪个“变量”?整件事?“var JQFUNCS=”这一个。@john_stack ha,这是一个非常好的介绍性问题。最近,我似乎对javascript中的这些东西产生了一点兴趣。无论那是精神错乱还是智力,我都说不出来
var objectLiteral = (function() {
//currently within a self-executing function, syntax allows this
var privatePropertyOne = 1;
function privateFunctionTwo() { //yes, functions can contain other functions
return 2;
}
//the self-executing function returns and object literal that contains references to the privately scoped items defined above.
return {
PropertyOne: function() { return privatePropertyOne; },
FunctionTwo: privateFunctionTwo
};
})();