一、自定义对象的构造:

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();

js学习-自定义函数、对象的字面量、json对象学习小结的更多相关文章

  1. js 正则学习小记之匹配字符串字面量优化篇

    昨天在<js 正则学习小记之匹配字符串字面量>谈到 个字符,除了第一个 个,只有 个转义( 个字符),所以 次,只有 次成功.这 次匹配失败,需要回溯后用 [^"] 才能匹配成功 ...

  2. JS常用自定义函数总结

    JS常用自定义函数总结   1.原生JavaScript实现字符串长度截取 2.原生JavaScript获取域名主机 3.原生JavaScript清除空格 4.原生JavaScript替换全部 5.原 ...

  3. 判读是不是对象字面量(纯对象)。对象字面量创建方式有{}、new Object()创建

    //判读是否是自身属性 function isHasPro(obj,pro){ return obj.hasOwnProperty(pro) ? true : false; } //判读是不是对象字面 ...

  4. js之字面量、对象字面量的访问、关键字in的用法

    一:字面量含义 字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量. 字面量分为字符串字面量(string literal ).数组字面量(array literal) ...

  5. 学习熟悉箭头函数, 类, 模板字面量, let和const声明

    箭头函数:https://blog.csdn.net/qq_30100043/article/details/53396517 类:https://blog.csdn.net/pcaxb/articl ...

  6. 创建对象的两种方法: new 和 面向对象(对象字面量)及对象属性访问方法

    创建对象的两种方法: new 和 面向对象(对象字面量)用 new 时:var o = new Object();o.name = "lin3615";alert(o.name); ...

  7. Swift编程语言学习1.4——数值型字面量、数值类型转换

    数值型字面量 整数字面量能够被写作: 一个十进制数,没有前缀 一个二进制数,前缀是0b 一个八进制数,前缀是0o 一个十六进制数,前缀是0x 以下的全部整数字面量的十进制值都是17: let deci ...

  8. js 根本没有“JSON对象”这回事! JSON对象——转

    前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢. ...

  9. 使用Gson将对象类转成Json对象时出现\u003d的问题

    Gson将对象转成Json对象的方法 Gson gson=new Gson(); String json=gson.toJson(Student.class); 这种情况,如果Student属性中的某 ...

随机推荐

  1. typedef struct 结构体

    typedef struct _TTTT_ {   int    i;  }TT_TT; 定义变量如下: struct _TTTT_  NewTT;方法1 TT_TT NewTT;方法2 是声明和定义 ...

  2. [PAT]数列求和(20)

    #include "stdio.h" #include "malloc.h" #include "math.h" void calc(int ...

  3. Spark Streaming、Kafka结合Spark JDBC External DataSouces处理案例

    场景:使用Spark Streaming接收Kafka发送过来的数据与关系型数据库中的表进行相关的查询操作: Kafka发送过来的数据格式为:id.name.cityId,分隔符为tab zhangs ...

  4. review过去的10年

    本科毕业有10个年头多了,如果对我的博客做一个主题分析,还真能发现一些规律,这里总结一下: 1.  活跃度 本科毕业最后一学期是思维最活跃的阶段,人生面临很多的变化和挑战,心态相对还不错. 从来北京以 ...

  5. Linux下find命令

    转自:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html 1.1.find命令的一般形式 man文档中给出的find命令的一般形 ...

  6. vim总结

    1.vim基础用法 注:该思维导图来自笔者<Linux就该这么学>读书笔记. 移动光标: 命令 描述 k 向上移动光标(移动一行) j 向下移动光标(移动一行) h 向左移动光标(移动一个 ...

  7. 编译caffe报错:_ZN5boost16exception_detail10bad_alloc_D2Ev

    具体报错信息很长的. text._ZN5boost16exception_detail10bad_alloc_D2Ev[_ZN5boost16exception_detail10bad_alloc_D ...

  8. 1-11 ICMP协议

    ICMP协议 IP不提供可靠的传输服务,也不提供端到端或点到点的确认,如果出错可以通过ICMP报告来看,它在IP模块中实现.TCP/IP协议设计了ICMP就是为了弥补IP协议的不足. 它是TCP/IP ...

  9. table奇偶行设置颜色代码

  10. linux下(Ubuntu、centos)添加永久静态路由的方法

    项目中经常遇到多网卡的服务器,但是一个服务器的默认网关只有一个,当需要在多个网络中访问的时候(特别是在公安.交警等政府项目中),就需要添加静态路由了. 添加静态路由的方法有很多种,下面介绍2种比较常见 ...