一、自定义对象的构造:
var student=new Object(); //object是顶级对象,使用构造函数的方法创建一个对象,此处的意思是创建了一个学生的空对象 student.name="李四"; student.age="24"; //此处属性与方法是无序的 student.sex="男"; //这三句是函数的属性(姓名,年龄,性别) student.sayHi=function(){ console.log("我叫"+student.name+"我的年龄是"+student.age+"我是"+student.sex+"生"); }; //这句是函数的方法(问好) student.sayHi(); //最后可以通过对象名.方法名()调用这个函数。
我们可以通过构造函数的方法来创建一个对象。
function createstudent(name,age,sex){ //此处构造一个//createstudent的函数 var student=new Object(); //创建一个学生对象 student.name=name; //分别给对象的属性赋一个形参 student.age=age; student.sex=sex; student.sayHi=function(){ //此处为创建一个匿名函数将其赋给对象的方法,当最后调用这个匿名函数时执行此处代码。 console.log("我叫"+student.name+"我的年龄是 "+student.age+"我是"+student.sex+"生"); }; return student; //将对象返回出去 } var lisi=createstudent("李四",20,"男"); lisi.sayHi();
这里可以使用关键字this引用的是构造函数当前创建的对象。在这个方法中,this指向的所属的对象是最后用new所创建的Student对象。.
function Student(name, age, sex) { //(1)var student=new Object(); //(1)、(2)为冗余代码,因为每次调用都必须重新创建对象,并返回 this.name = name; this.age = age; this.sex = sex; this.sayHi = function () { console.log("我叫" + this.name + "我的年龄是" + this.age + "我是" + this.sex + "生"); }; // (2) return student; } var lisi = new Student("李四", 20, "男");//此处创建一个对象 lisi.sayHi();
new 的作用:
1) 先创建一个空对象;2)使用关键字this指向这个对象; 3)执行构造函数里面的代码,并给这个对象设置属性与方法;4)最后返回这个对象
二、对象的字面量:
对象的字面量大多用于只用一次的对象
其书写方式有两种:
第一种:
var o={}; o.name="张三"; o.age=20; o.sex="男"; o.sayHi=function(){ console.log("我叫:"+ o.name+",我的年龄是:"+ o.age+",我是"+ o.sex+"生。"); }; o.sayHi();
第二种:
var o = { name: "张三", //前面是键,后面是值,注意必须用逗号隔开 age: 20, sex: "男", sayHi: function () { console.log("我叫:" + this.name + ",我的年龄是:" + this.age + ",我是" + this.sex + "生。"); } //最后不需要加逗号 }; console.log(o.name); console.log(o.age); o.sayHi();
//最后的输出方式也可以这样写
console.log(o.["name"]);
console.log(o.["age"]);
//这一种灵活一些,[]里面可以是属性也可以是变量
for…in
//for in
//获得对象之中每一个属性的值
for (var key in o) { console.log(key + "=======" + o[key]); }
三.对于JSON对象的简单了解:
通过 jQuery AJAX,使用 HTTP Get 和 HTTP Post,您都可以从远程服务器请求 TXT、HTML、XML 或 JSON。
JSON主要用于与后台数据的传输。
var o = { //json对象 主要用于传输数据 "name": "张三", //前面是键,后面是值,用逗号隔开 "age": 20, //JSON对象必须加上引号这也是与对象字面量定义属性与方法的区别。 "sex": "男", "sayHi": function () { console.log("我叫:" + this.name + ",我的年龄是:" + this.age + ",我是" + this.sex + "生。"); } }; o.sayHi();