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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_45019986/article/details/120514675