JS也疯狂(2)--函数即对象
    js是一种弱类型的语言,你在声明一个变量时,不需要声明其属于那种类型。但是,JS 也是一种基于对象的语言,既然基于对象,和其他面向对象的语言一样,也有面向对象的特性,如继承、重写、重载等。
    
   js的主要的本地对象(内置对象)有
Undefined : 未定义
Number    : 数字
Boolean   : 布尔值
string    : 字符串
Function  : 函数
Date      : 时间
Array     : 数组  
Object    : 所有对象的根
   所有对象继承自Object,这没什么奇怪,和其他语言不同的是Function 对象,也就是说函数即对象。
   在声明一个函数时如
function sayHello(str){
  alert(str);
}
    事实上是声明了一个Function 对象,即
    var sayHello = new Function(str,"alert(str)");
    既然sayHello是一个对象,那sayHello就肯定有自己的属性方法。这就使在js进行面向对象的编程变成可能。其实设计JS 时,并没有打算它能和C#、JAVA 一样有着严密的设计结构。所谓JS 的面向对象,只是开发者根据自己在其他面向对象语言中的经验伪装而来,使得JS开发和其他大型语言一样,有比较好的结构体系。
    构建一个类的例子:
    function Human(height,weight){
      this.height = height;
      this.weight= weight;  
    }
    Human.prototype.Talk = function(){
      alert("I can talk");
    }
    OK,一个类就写完了,他有height和weight属性,有Talk()方法。现在可以使用这个类 如 :
    var man = new Human(173,65);
    可能有人会因为没有class这样的关键字把一个类的属性和方法封装在一起而郁闷。但这就是一个类,不要死盯着class关键字不放了。