这段代码是类吗?

tengerye 2013-11-11 12:09:53

var QUERY = 'puppies';

var kittenGenerator = {

searchOnFlickr_: 'https://secure.flickr.com/services/rest/?',


requestKittens: function() {
var req = new XMLHttpRequest();
req.open("GET", this.searchOnFlickr_, true);
req.onload = this.showPhotos_.bind(this);
req.send(null);
},

showPhotos_: function (e) {
var kittens = e.target.responseXML.querySelectorAll('photo');
for (var i = 0; i < kittens.length; i++) {
var img = document.createElement('img');
img.src = this.constructKittenURL_(kittens[i]);
img.setAttribute('alt', kittens[i].getAttribute('title'));
document.body.appendChild(img);
}
},

constructKittenURL_: function (photo) {
return "http://farm" + photo.getAttribute("farm") +
".static.flickr.com/" + photo.getAttribute("server") +
"/" + photo.getAttribute("id") +
"_" + photo.getAttribute("secret") +
"_s.jpg";
}
};

// Run our kitten generation script as soon as the document's DOM is ready.
document.addEventListener('DOMContentLoaded', function () {
kittenGenerator.requestKittens();
});


是谷歌的js代码,太长了,做了删减。能否先解释一下大概语法,然后告诉我哪里可以找到,谢谢。我在w3cschool 上面找不到这语法。
...全文
430 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengerye 2013-11-17
  • 打赏
  • 举报
回复
引用 26 楼 ftiger 的回复:
说这个是json的不完全正确。严格意义上的json是基于javascript语法的数据储存和交换文本。而且字段名必须用""括起来,我是吃过亏的,别的语言解析没引号的会出错。 json就是使用了javascript的用[]表示数组,用{}表示对象的语法,组合起来主要用于储存或传递数据,比如多个系统之间,或ajax取得服务器数据等方面。json可以是任何后缀的,.json只是显得更直观。 回到这个代码,只是写了一个对象,而不是一个类,直接可以用的,不用new。说json的是指这代码写法和json的写法很相近。当然你要说他就是个json,只是字段名没加引号,这也没问题,只是在javascript环境下使用的话不会出错。javascript中有个思想,function是第一公民,function也可以做为数据传递。 这种象json一样的写法在js中大量存在,象本代码是直接当成一个对象使用。也有代码做为命名空间,或储存数据,交换数据等等。
大神不是装的,果然不一样。这些全懂了。谢谢大神了。
ftiger 2013-11-16
  • 打赏
  • 举报
回复
说这个是json的不完全正确。严格意义上的json是基于javascript语法的数据储存和交换文本。而且字段名必须用""括起来,我是吃过亏的,别的语言解析没引号的会出错。 json就是使用了javascript的用[]表示数组,用{}表示对象的语法,组合起来主要用于储存或传递数据,比如多个系统之间,或ajax取得服务器数据等方面。json可以是任何后缀的,.json只是显得更直观。 回到这个代码,只是写了一个对象,而不是一个类,直接可以用的,不用new。说json的是指这代码写法和json的写法很相近。当然你要说他就是个json,只是字段名没加引号,这也没问题,只是在javascript环境下使用的话不会出错。javascript中有个思想,function是第一公民,function也可以做为数据传递。 这种象json一样的写法在js中大量存在,象本代码是直接当成一个对象使用。也有代码做为命名空间,或储存数据,交换数据等等。
xinfucheng 2013-11-16
  • 打赏
  • 举报
回复
引用 24 楼 tengerye 的回复:
这个json函数很复杂吗?求大神们给个链接或者书名什么的吧。
json不是函数,是一种结构吧,我觉得只要是写成{}形式的对象,就称为json格式的对象。 我总结json格式对象分四种 1.模仿数组的对象,如var arr={x1:1,x2:2} 2.对象直接量,如var obj={attribute:1, method:function(){}} 3.单体对象:划分了命名空间的对象直接量,上面例子的obj变量,换成功能名,就是单体对象。 4.命名空间:里面都是函数或类,不是真正的属性和方法。 我根据js设计模式一书自己总结的,楼主参考 你的例子是上面的第三种,单体对象。
tengerye 2013-11-15
  • 打赏
  • 举报
回复
这个json函数很复杂吗?求大神们给个链接或者书名什么的吧。
tengerye 2013-11-15
  • 打赏
  • 举报
回复
引用 22 楼 u011461314 的回复:
求求你看看书吧。
大神,看书也告诉书名啊。
zhjdg 2013-11-15
  • 打赏
  • 举报
回复
求求你看看书吧。
tengerye 2013-11-15
  • 打赏
  • 举报
回复
求各位大神解释一下json函数的语法可以吗?或者告诉我再哪里找也行。 w3cshool就免了,上面没有。
tengerye 2013-11-14
  • 打赏
  • 举报
回复
求各位大神解释一下,为什么json里面有函数?
allali 2013-11-13
  • 打赏
  • 举报
回复
http://www.w3schools.com/json/default.asp W3C JSON的说明
zhjdg 2013-11-13
  • 打赏
  • 举报
回复
还来个json语法,不搞死人才怪。 json不论去到那种语言上,都要转化成其变量所适应的类型才行。
萧萧可乐 2013-11-13
  • 打赏
  • 举报
回复
所谓的json语法 一般指的也就是面向对象的编码方式 比如

var people = {
    say : function(){
        alert("你好,地球人!");
    }
};
people.say();
大牛们 出来补充吧
tengerye 2013-11-13
  • 打赏
  • 举报
回复
引用 18 楼 MengYouXuanLv 的回复:
http://www.w3schools.com/json/default.asp W3C JSON的说明
我就是因为再上面没有找到函数语法才来问的。
tengerye 2013-11-12
  • 打赏
  • 举报
回复
大家能不能稍稍给我解释一下里面用的一些语法?谢谢各位大神。
tengerye 2013-11-12
  • 打赏
  • 举报
回复
不对啊,我看w3c的教程,里面没有说JSON有函数啊。
白天猫 2013-11-11
  • 打赏
  • 举报
回复
kittenGenerator 是json
zhjdg 2013-11-11
  • 打赏
  • 举报
回复
不是类,可以理解为singleton。 javascript中没有类,有模拟出来的类。(所以javascript中的类,还真有点奇特。)
KK3K2005 2013-11-11
  • 打赏
  • 举报
回复
引用 楼主 tengerye 的回复:
我在w3cschool 上面找不到这语法。
“这” 是什么?
  • 打赏
  • 举报
回复
这是在定义类的时候直接声明了对象,你直接拿这个对象用就行了啊
Left_you 2013-11-11
  • 打赏
  • 举报
回复
引用 6 楼 baohuan_love 的回复:
完全可以把上述代码中的kittenGenerator 当做一种类类型
如果可以当它是一个类你能new一个它的对象出来吗? 这明显就不能,这已经是个对象。
  • 打赏
  • 举报
回复
完全可以把上述代码中的kittenGenerator 当做一种类类型
加载更多回复(7)

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧