JS_5_自定义类
JS的类比较死板,它的对象不会共享方法。
创建一个类:
格式:
function 类名(形参){ this.属性名 = 形参; ... this.属性名 = "值";
... this.方法名 = function(形参){ 方法体; } }
在JS中,类的方法并不共享,每创建一个对象都会给它单独分配一个方法。为了做到方法共享,节省资源,使用关键字prototype声明变量为共享变量(方法)。
所以创建类的格式一般为:
function 类名(形参){ this.属性名 = 形参; ... this.属性名 = "值";
... } 类名.prototype.方法名 = function(形参){ 方法体; }
创建一个对象:
var 对象名 = new 类名(参数);
访问其它对象的属性方法:
创建一个prototype变量连接上其它类的对象,即可访问其属性、方法。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>学习使用类</title> <script type="text/javascript"> //创建A类 function A(name,age){ this.name = name; this.age = age; this.sex = "男"; } A.prototype.speak = function(some){ document.write(some); document.write("<br>"); } //创建B类 function B(){ this.sex = "女"; } //创建变量BtoA,实现B类连接上A类 B.prototype.BtoA = new A("lurenjia",18); //创建B类对象 var cls2 = new B(); //B对象调用A类方法 cls2.BtoA.speak("hello"); //B对象获取A对象属性 document.write(cls2.BtoA.sex); document.write("<br>"); document.write(cls2.BtoA.name); </script> </head> <body> </body> </html>
运行结果: