<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
/*
function Person(){} //当我们定义一个函数,系统会默认该函数为同名类下的构造函数,我们也可以把这个函数称之为构造器
var p1 = new Person();
alert(typeof p1);
*/
/*
var per = new Object();
per.name = '张三';
alert(per.name);
*/
/*
//对象的创建
var 对象名 = new 类名();
function Person(){} //类的定义
var p1 = new Person(); //对象的定义 //对象的属性 对象名.属性
p1.name = 'zhangsan';
p1.age = 23;
p1.marry = false;
alert(p1.name+':'+p1.age+':'+p1.marry);
alert(typeof p1);
*/
/*
//常用的几个关键词
alert(p.constructor); constructor 调用对象的构造器
alert(typeof p); typeof 类型
alert(p instanceof person) instanceof 判断某个对象是否属于某个类
*/
/*
this的使用
1.在js中,谁调用构造器,那么构造器内部的this指针就指向“谁”
2.在js全局变量作用域中,this指向window对象
*/
/*
//对象的遍历
function Person(){}
var p1 = new Person();
p1.name='xiao';
p1.age = 30;
for(var i in p1){
document.write(p1[i]+'<hr>');
} for(var i in window){
document.write(i+'<br>');
}
*/
/*
//属性的删除
语法 delete 对象名.属性
*/
/*
function Person() {}
var p1 = new Person();
p1.name = 'lis';
p1.age = 33;
p1.speak = function(){
alert("我叫"+this.name);
}
p1.speak();
*/
//json 对象
/*
var json = {
name : 'lisi',
age :23,
addr : '广州'
}; alert(json.name); //调用 对象名.属性
*/ /*
var json = [{
name : 'lis',
age : 23,
email : '11@11.com'
},{
name : 'wang',
age : '25',
email : '33@33.com'
} ]; alert(json[1].name);
*/
//原型链
/*
//1.原型对象 当我们加载一个函数构造器,会自动再内存创建一个对象,我们把这个对象称之为原型对象。
//应用
function Person(){}
var p1 = new Person();
p1.age = 23;
Person.prototype.address = 'beijing'; //通过原型添加address属性
Pseron.prototype.speak = function(){ //通过原型添加speak方法
alert(this.name);
}
//2.原型继承
function Person(){}
var p1 = new Person();
p1.name = 'zhangsan';
p1.age = 23;
alert(p1.hasOwnProperty('name'));
*/ </script> </body>
</html>