javascript 定义对象、方法和属性的使用方法(prototype)

另一篇文章:

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”);

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?