学习目标:
掌握Js继承模式,命名空间,对象枚举
学习产出:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//原型链
/* Grand.prototype.lastName = "Ji";
function Grand() {
}
var grand = new Grand();
Father.prototype = grand;
function Father() {
this.name = "hehe";
}
var father = new Father();
Son.prototype = father;
function Son() {
}
var son = new Son();*/
//借用构造函数
/*function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
function Student(name, age, sex, grade) {
Person.call(this, name, age, sex);
this.grade =grade;
}
var student = new Student();*/
/*Father.prototype.lastName = "Deng";
function Father() {
}
function Son() {
}
Son.prototype = Father.prototype;
var son = new Son();*/
/*Father.prototype.lastName = "Deng";
function Father() {
}
function Son() {
}
function inherit(Target, Origin) {
Target.prototype = Origin.prototype;
}
inherit(Son, Father);
var son = new Son();*/
//圣杯模式
/* function inherit(Target, Origin) {
function F() {}
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constructor = Target;
Target.prototype.uber = Origin.prototype;
}
Father.prototype.lastName = "Deng";
function Father() {
}
function Son() {
}
inherit(Son,Father);
var son = new Son();
var father = new Father();*/
/*var inherit = (function (Target, Origin) {
var F = function (){};
return function () {
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constructor = Target;
Target.prototype.uber = Origin.prototype;
}
}());
*/
/*function Deng(name, wife) {
var prepareWife = "xiaozhang";
this.name = name;
this.wife = wife;
this.divorce = function () {
this.wife = prepareWife;
}
this.changePrepareWife = function (target) {
prepareWife = target;
}
this.sayPraprewife = function () {
console.log(prepareWife);
}
}
var deng = new Deng("deng", "xiaoliu");*/
/*var deng = {
wife1 : {name : "xiaoliu"},
wife2 : {name : "xiaozhang"},
wife3 : {name : "xiaomeng"},
wife4 : {name : "xiaownag"},
sayWife : function (num) {
return this["wife" + num];
}
}*/
/*var obj = {
name : "123",
age : 123,
sex : "male",
height : 180,
weight : 75,
__proto__:{
lastName : "deng"
}
}
for (var prop in obj) {
if (obj.hasOwnProperty(prop)){
console.log(prop + "" + typeof(prop));
console.log(obj[prop]);
}
}*/
</script>
</body>
</html>