另一篇文章:
Javascript继承机制的设计思想
prototype:
定义和用法
 prototype 属性使您有能力向对象添加属性和方法
语法:
定义方法:object.prototype = { 函数名 : function(){} }
定义属性:object.prototype.name=value
JavaScript中的类和对象
 1、定义类:
例1:
 //第一种定义方式
 var people = function(name){
 this.name = name;
 this.say = function(msg){
 alert(this.name + ” say : ” +msg);
 }
 }
 //第二种定义方式
 function people(name) {
 this.name = name;
 this.init = function(msg){
 alert(this.name + ” say : ” +msg);;
 }
 }
 //调用
 var people = new people(“I”);
 people.init(“hello”);//输出:I say hello
//定义静态方法,接例1
 people.says = function(msg){
 alert(this.name + ” say : ” +msg);
 }
 people.aa = “aa”;
 //调用
 people.says (“hellos”);//I say Hellos
 alert(people.aa);//aa
2、定义对象,调用时使用对象.方法或者和java调用map的方式一样对象[‘方法名’](args)
例2:
 //定义对象
 var people = {
 run : function(){
 alert(“I can run”);
 }
 };
 //调用
 people.run();//输出 I can run
 people[‘run’]();//同上
以上两种方式不能同时使用
 Javascript的方法可以分为三类
 类方法,如例1
 对象方法,如例2
 原型方法,prototype
例3:
 //定义类
 var people = function(name){
 this.name = name;
 }
 //原型方法
 people.prototype = {
 introduceChinese : function(){
 alert(this.people +”的名字是”+this.name);
 }
 people;
 };
//测试
var p1=new people(“Windking”);
 p1.people = ‘谁’;
 p1.IntroduceChinese();
总结:
javaScript创建对象就是定义函数
 javaScript对象定义方法和属性有三种方式
在函数内部定义方法和属性,类似java的定义,如例1
 使用函数名.prototype定义方法和属性,例3
 使用对象定义方法和属性
 使用prototype定义属性时,要放在定义方法的后面,不然属性会是undefined
使用javascript定义属性,不像java那么严谨,在实例经对象后,也可以定义属性
 使用prototype和函数内部定义方法和属性,其作用是一样的,都需要实例化函数后才可使用
 直接使用函数名定义方法和属性,类似java的静态该当和变量,如:
 function scriptBean(){}
 //定义方法
 scriptBean.sayHello = function(msg){
 console.log(this.name + ” say : ” +msg);
 }
 //定义属性
 scriptBean.name = “scriptBean”;
 //调用
 scriptBean.sayHello(“hello”);










