<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<script>
var Person =
function(firstName,lastName){
this.firstName =
firstName;
this.lastName =
lastName;
this.genter = 'male'
;
};
var clark =
new Person('Clark','kent'
);
console.log(clark);// ->_-> Person {firstName: "Clark", lastName: "kent", genter: "male"}
//通过试用call方法,让superhero继承person函数内部的所有属性,理解为执行一遍,并把,执行的语句赋给当前的this;
var Superhero =
function(firstName,lastName,powers){
person.call(this,firstName,lastName);
this.powers =
powers;
};
/*__________________________________________________________________________________________________________*/
var Car =
function(setting){
this.model = setting.model || 'no model provided'
;
this.color = setting.color || 'no color provided'
;
};
var Mixin =
function(){};
Mixin.prototype =
{
driveForward : function(){
console.log( "drive forward"
);
},
driveBackward : function(){
console.log("drive backward"
);
},
driveSideways : function(){
console.log("drive sideways"
)
}
};
function augment(receivingClass,givingClass){
if(arguments[2
]){
for(
var i =0; i<arguments.length; i++
){
receivingClass.prototype[arguments[i]] =
givingClass.prototype[arguments[i]];
};
}else{
for(
var method
in givingClass){
if(!
receivingClass.hasOwnProperty[methodName]){
receivingClass.prototype[methodName] =
givingClass.prototype[methodName]
};
};
};
};
augment(Car,Mixin,"driveForward","driviBackward"
);
var myCar =
new Car({
model : 'ford++++'
,
color : '#f00'
})
myCar.driveForward() // drive forward
</script>
</body>
</html>
转载于:https://www.cnblogs.com/diligenceday/p/3432512.html
相关资源:JAVA上百实例源码以及开源项目