<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Object类型</title>
</head>
<body>
<script type="text/javascript">
/*
Object类型:
1、Object类型是所有类型的超类,自定义的任何类型,默认继承Object.
2、Object类型包含的属性:
prototype属性(常用的) 其作用是:给类动态的扩展属性和函数
constructor属性
3、Object类包括哪些函数:
toString();
valueOf();
tolocaleString();
4、在JS当中定义的类默认继承Object,会继承Object类中所有的属性和函数,换句话说
自己定义的类中也有prototype属性
5、在JS当中怎么定义类?怎么new对象?
定义类的语法:
第一种:
function 类名(形参){
}
第二种:
类名 = function(形参){
}
创建对象的语法:
new 类名(实参);//类名和构造方法名相同
*/
function sayHello(){
}
//把sayHello当做普通函数来调用
sayHello();
//把sayHello当做一个类来调用创建对象
var obj = new sayHello();//obj是一个引用,保存的内存地址指向堆中的对象。
//定义一个学生类
function Student(){
alert("Student......")
}
//当做普通类来调用
Student();
//当做类来创建对象
var stu = new Student();
alert(stu);//[object Object]
//在JS当中类的定义和构造函数的定义是放在一起完成的。
function User(a,b,c){//a,b,c是形参,属于局部变量
//声明属性this表示当前对象,User类中有三个属性:sno,sname,sage
this.sno = a;
this.sname = b;
this.sage = c;
}
//创建对象
var u1 = new User(111,"zhangsan",30);
//访问对象的属性
alert(u1.sno);
alert(u1.sname);
alert(u1.sage);
//访问一个对象的属性,还可以使用这种语法
alert(u1["sno"]);
alert(u1["sname"]);
alert(u1["sage"]);
//定义类的另一种语法
Emp = function(ename,sal){
this.ename = ename;
this.sal = sal;
}
//创建对象
var e1 = new Emp("lisi",800);
alert(e1["ename"] + "," + e1.sal);
Product = function(pno,pname,price){
//属性
this.pno = pno;
this.pname = pname;
this.price = price;
//函数
this.getPname = function(){
return this.pname;
}
}
//创建西瓜对象
var xigua = new Product(111,"西瓜",2.0);
alert(xigua.getPname());//西瓜
//可以通过prototype这个属性来给类动态扩展属性以及函数
Product.prototype.getPno = function(){
return this.pno;
}
//调用后期扩展的函数getPno()
alert(xigua.getPno());//111
</script>
</body>
</html>
JavaScript当中的Object类型
于 2023-02-02 09:20:51 首次发布