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代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值