<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script>
//封装
/*function Cat(name,color){
this.name = name;
this.color = color;
}
Cat.prototype.type = "猫科动物";
Cat.prototype.eat = function(){
alert("吃老鼠")
};
var cat1 = new Cat("大毛","黄色");
var cat2 = new Cat("二毛","黑色");
alert(cat1.type); // 猫科动物
console.log(cat2)
console.log(cat1)
cat1.eat(); // 吃老鼠*/
//继承
function Animal(){ }
function Cat(name,color){
this.name = name;
this.color = color;
}
Animal.prototype.species = "动物"
function extend(Child, Parent) {
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.uber = Parent.prototype;
}
extend(Cat,Animal);
var cat1 = new Cat("大毛","黄色");
// alert(cat1.species); // 动物
/*3深拷贝*/
var Chinese = {
nation:'中国'
};
var Doctor ={
career:'医生'
}
function deepCopy(p, c) {
var c = c || {};
for (var i in p) {
if (typeof p[i] === 'object') {
c[i] = (p[i].constructor === Array) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
return c;
}
Chinese.birthPlaces = ['北京','上海','香港'];
var Doctor = deepCopy(Chinese);
Doctor.birthPlaces.push('厦门');
console.log(Doctor.birthPlaces); //北京, 上海, 香港, 厦门
console.log(Chinese.birthPlaces); //北京, 上海, 香港
/* 第一种:基于Object对象*/
var person = new Object();
person.name = 'My Name';
person.age = 18;
person.getName = function(){
console.log(person)
return this.name;
}
person.getName();
/*第二种:对象字面量方式(比较清楚的查找对象包含的属性及方法)*/
var person = {
name : 'My name',
age : 18,
getName : function(){
return this.name;
}
}
</script>
</html>
js面向对象
最新推荐文章于 2024-02-28 23:59:43 发布