js类和对象的定义和使用
Js类和对象
1.类的声明
function 类名(形参1,...){
this.属性名1=形参1;
...
}
2.类的使用(创建对象)
var 对象名=new 类名(实参1,...);
ps:js中类的内容只是对象公共部分,每个对象还可以自行进行扩充
3.类的”继承”—-prototype关键字
通过prototype关键字实现不同对象之间的数据的共享。
propotype关键字所指向的是共享的空间,而对象仅仅是来调用共享空间内容。
//类的声明
function Person(name,age){
this.name=name;
this.age=age;
this.fav="swim";//所有对象共享游泳
this.fun=function(){
alert("aaa");
}
}
//使用类
var p1=new Person("吴彦祖",30);
p1.address="香港";//扩展属性
console.log(p1.name,p1.age,p1.address);
var p2=new Person("斯嘉丽");
弊端:每个对象都有一个fav属性,且值一样。消耗内存,占用空间。
改进如下
//类的声明
function Person(name,age){
this.name=name;
this.age=age;
//this.fav="swim";//所有对象共享游泳
this.fun=function(){
alert("aaa");
}
}
//使用类
var p1=new Person("吴彦祖",30);
p1.address="香港";//扩展属性
console.log(p1.name,p1.age,p1.address);
var p2=new Person("斯嘉丽");
//原型空间,该类的公共空间
Person.prototype.test=function(){
alert("test");
}
console.log(p1.test===p2.test);
Person.prototype.fun="swim";
4.自定义对象
对象的定义方式一 :
var 变量名=new Object();//空对象
变量名.属性名=值;
变量名.函数名=function(){};
对象的访问:
变量名.属性;
变量名.函数名();
var obj=new Object();
obj.name="吴彦祖";
obj.age=30;
obj.show=function(){
alert("name:"+this.name);
}
obj.show();
对象的定义方式二 :
var 变量名={
属性名:值;
...
函数名=function(){};
...
}
var obj={
name:"吴彦祖",
age:30,
show:function(){
alert("name:"+name+" age:"+age);
}
}
console.log(obj.show());
5.常用对象和方法
1.String
var str="hello";//定义方式1
var str1=new String("hello");//定义方式二
console.log(str.toUpperCase());//大写
console.log(str.toLowerCase());//小写
var arr=split(",");//这里的的分割规则,不能使用正则表达式
console.log(arr);
var s=str.substr(1,3);//从1索引开始截取,截取3个字符串
console.log(s);
var ss=str.substring(1,3);//从1索引开始截取,截取到索引3,但是不包括3;
console.log(ss);
console.log(str.indexOf("l"));//第一次出现l的索引
console.log(str.lastindexOf("l"));//最后一次出现l的索引
2.Date对象
var 变量名=new Date();
//获取年份
getYear();//返回距离1900年的年份
getFullYear();
//获取月份
getMonth();//返回当前月的下标,月份下标为0~11
//获取日
getDate();//获取日期(日)
getDay();//获取周,星期几,如果是星期日,则是0
getHours();//获取时
getMinutes();//获取分
getSeconds();//获取秒
var d=new Date();
alert(d);
console.log(d.getYear());
console.log(d.getFullYear());
3.Math对象
Math.random():返回的是0-1的小数,不包括1
Math.floor(23.6):向下取整
Math.ceil(23.6):向上取整
Math.round(23.6):四舍五入
Math.min(1,2):最小值
Math.max(1,2):最大值
4.Global对象
isNaN():not a number,返回值为boolean类型
parseInt():转换为整形
parseFloat():转换为浮点数
alert():弹窗
prompt("提示"):输入框
confirm("mesg"):确定框,返回值为boolean类型
eval(字符串):将字符串转换为可执行的js代码
版权声明:本文为weixin_45019986原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。