Practical Training JS课程-创建对象
js中function、json、object的区别:具体的代码如下所示:
// 三者之间的区别 // []==数组 {}==对象 // 字面量 json ====常用于数据解析 var student = { id:10001, name:"张三", scores:[ {subject:"html",scores:90}, {subject:"JS",scores:90} ] } // function ==常用 function student(id,name){ this.id = id; this.name = name; this.scores = [ {subject:"html",scores:90}, {subject:"JS",scores:90} ] } student.prototype.sex = "男"; // 另外再加信息==扩展 student.prototype.eat = function(food){ console.log("吃"+food); } var stu = new student(1000,"张三"); stu.eat("米饭"); console.log(stu.sex); // object ==相对比较自由 但代码重复率过高 var stu2 = new Object(); stu2.id = 1000; stu2.name = "张三"; stu2.scores = [ {subject:"html",scores:90}, {subject:"JS",scores:90} ] // 方法里的链式编程 function student(id,name){ this.id = id; this.name = name; this.eat = function(food){ console.log("吃"+food); // 把值传给stu stu是这里所有this的最终所属值 return this; }, this.sleep = function(room){ console.log("睡"+room); return this; } } var stu = new student(1002,"张三"); // 链式编程 stu.eat("了").sleep("了").eat("了").sleep("了"); // stu.sleep(" 了");
另:js 是弱类型语言。 定义变量的时候不需要强制指定变量类型,当你定义 var aa = {"aa":"bb"}的时候它会自动给你转成json类型。当使用ajax请求后台
时返回没有指定返回类型,默认是字符串类型 "{'aa':'bb'}"。 因为外面有个双引号所以不会被转成json对象的。
var aa = '{"aa":"bb"}'; alert(aa.aa); var cc = {"cc":"dd"}; alert(cc.cc);
首先,要搞清楚JSON和Object对象是什么关系;主要有以下的区别:
1、JSON是对象,但对象不一定是JSON
2、在JSON对象中出现的value始终都不可能是一个函数,如果转换后添加进去方法,那就变成一个真正的JS对象了。
3、JSON是一种数据结构,并不是对象。因此没有方法。这个要仔细体会