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是一种数据结构,并不是对象。因此没有方法。这个要仔细体会

posted @ 2021-11-04 19:06  小张同学的派大星吖  阅读(23)  评论(0编辑  收藏  举报