另一篇文章:
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”);