* 一个函数就是一个类(函数和类是同一个概念,可以将此函数理解为该类的构造函数),js中的类是一些属性(方法)的集合。 对象引用属性(方法)的方式是: 对象名.属性(方法)名; 或 对象名["属性(方法)名"];
可以为对象 添加,修改,删除( = undefined) 属性和方法。 修改和添加方法 user.eat = function(){ ...... } * 用new来创建对象,如 var obj = new class1(); 会返回一个对象。 也可以用 { } 创建对象,因为是属性(方法)的集合。属性(方法)和其定义之间用 :间隔
prototype: 当每创建一个类的实例的时候,都要执行一次构造函数,函数中的属性和方法总会被重复创建,prototype可以很好的解决。当new一个function时,该对象的成员将自动的赋给所创建对象。prototype发生在函数体(构造器)执行之前。prototype的定义必须在new实例化对象之前,否则不会起作用。 原型对象,表示了该函数的原型,也就表示了这个类的所有成员的集合。 在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。 1、该对象只能被类所引用,只有函数对象才可引用; 2、在new实例化后,其成员被实例化,实例对象方可调用。 同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。 可以通过prototype来修改某个类的定义即属性和方法。例如:Object.prototype.eat = function(){ ... },任何一个对象都是Object的实例,所以可以修改Object这个类,来让所有的对象具有一些通用的属性和方法。 * 函数: function func(){ 有名函数 -- 可以在调用之后再声明 ...... } var func = function(){ 无名函数 -- 必须在调用之前声明 ...... } * 在传递给函数的参数中,有一个隐含参数arguments,通过它可以取得所有传入的参数。