1、Function 是 Object 的实例。Object 也是 Function 的实例
2、JavaScript的构造器Function 和 Object
首先明白两点 1)__proto__(原型链属性)是JavaScript中一切对象都有的属性,它一般指向创建它的函数的prototype属性(原型)有一点例外(不用函数创建对象,用var a = {}; var b = Object.create(a); 此时,b.__proto__ 指向a 而不是a.prototype,因为a是用字面值创建的对象,没有prototype属性。
       2)prototype 是只有函数对象才有的属性。它的指向一般是
最重要的一点Function.prototype.construtor指向它本身,Object.prototype.construtor也指向Function。
从这里可以说,所有的对象都是由Function生成的。
3、Function
Function 构造函数 创建一个新的Function对象。在 JavaScript 中, 每个函数实际上都是一个Function对象。
4、Object
Object 构造函数创建一个对象包装器。
Object构造函数为给定值创建一个对象包装器。
如果给定值是 null 或 undefined,将会创建并返回一个空对象,否则,将返回一个与给定值对应类型的对象。
以非构造函数形式被调用时,Object 等同于 new Object()。
5、首先,要搞清楚JSON和Object对象是什么关系;主要有以下的区别:
JSON是对象,但对象不一定是JSON
这一点是区别对象和JSON的重要关键点,对象的组成是由属性和属性值,也就是KEY->VALUE对组成
然而,还有一点是value可是是任意的数据类型,当value为一个函数的时候,这个时候叫做方法。而你通过
通过JSON.parse()传入的字符串并里面有VALUE为function的吗?得问一下。我想你不可能像下面的例子一样写这个被转换的字符串吧:
var a = '{name:"",say:function(){}}';
JSON.parse(a);
以上代码,是没有办法执行的。即使是服务器转换的JSON字符串,也没有把方法转换进这个字符串的。
在JSON对象中出现的value始终都不可能是一个函数,如果转换后添加进去方法,那就变成一个真正的JS对象了。
JSON是一种数据结构,并不是对象。因此没有方法。这个要仔细体会
------------------------------------------------------基础语法

var reg1=/\d/;
var reg=new RegExp("\d");

/*
\d 0~9任意一个数字 \D 任意一个非数值
[] 其中的任意一个字符 可以是数字可以是其他
[0-9] \d
12=> [1][2] 或 12
[12a] 1,2,a
[a-z A-Z 0-9 _ ]
[^] 非其中的任意一个字符
[^0-9]
\w 数字、字母、下划线
. 在外面写匹配任意一个字符 包括空格
[.] 写在中括号里就是匹配 .
| 或
2|3 匹配2或3
1[0-2] 10,11,12
1[012]

? 0-1次 有或者没有
0?[1-9]
+ 1-多次 至少一次
* 0-多次 可以没有
{,} 最少次数,最多次数
{6,12} 最少6次 最多12次
{6,} 最少6次 最多不限制
{,12} 可以没有 最多12次
^ 开始
$ 结束
*/

// 没有加^或$ /\d+/只要有数字都成功
var txt ="123abc456";
// var reg=/\d+/;
// 加上^和$ 就是false
var reg=/^\d+$/;
console.log(reg.test(txt));

// 1\d{10}手机号码
// 1[3-9]\d{9}

// 年月日
// \d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01])

// [\u4e00-\u9fa5] 字


---------------------------------------------------代码
// 字面量 json
// 用于数据解析
var Student={
id:10001,
name:"张三",
scores:[
{subject:"html",score:90},
{subject:"js",score:90}
]
}


//function
function Student(id,name){
this.id=id;
this.name=name;
this.scores=[
{subject:"html",score:90},
{subject:"js",score:90}
]
}
Student.prototype.sex="男";
Student.prototype.eat= function (food) {
console.log("吃" + food);
}
var sut=new Student(1000,"张三");
sut.eat("米饭");
console.log(sut.sex);

//object
var stu2=new Object();
stu2.id=1000;
stu2.name="张三";
stu2.scores=[
{subject:"html",score:90},
{subject:"js",score:90}
]


function Student(id,name){
this.id=id;
this.name=name;
this.scores=[
{subject:"html",score:90},
{subject:"js",score:90}
],
this.eat=function (food) {
console.log("吃" + food);
return this;

}
this.sleep=function () {
console.log("睡");
return this;
}
}

var stu=new Student(1001,"张三");
// 链式编程
stu.eat("").sleep();
// stu.sleep();