JS(JavaScript)
一.继承
1.原型式继承
定义临时构造函数,作为参数传入对象作为着构造函数原型,并最后返回该构造函数的实例对象
function Fun(obj,poap) {
function Fun() {
//定义一个临时构造函数
for(var attrNome in porp){
//遍历对象属性和方法
this[attrNome] = porp[attrNome]
}
}
Fun.prototype = obj;
//将函数参数作为函数的原型
return new Fun();
// 姜构造函数创造的对象进行返回
}
var obj = {
name : '犬夜叉'
}
var result = fn(obj,{
age : 16,
sayMe : function () {
console.log('you my function')
}
});
console.log(result.age);
result.sayMe();
2.借助构造函数
无论是原型链还是原型式继承,都有相同的问题,可借助构造函数
子对象构造函数种调用父对象构造函数,可通过调用
apply()和call()方法实现
apply()和cal()方法都准许传递对象this,可实现子对象构造函数种调用父对象构造函数时,将子对象this和父对象this捆绑在一起
function Parent() {
//定义父级对象的构造函数
this.parent = 'parent';
}
function call() {
//定义子级对象构造函数-使用apply()或call()方法
Parent.call(this);
this.child = 'child';
}
var child = new Child();
console.log(child);
3.组合方式继承
也叫为经典继承,将原型链或原型式继承和借助构造函数技术组合在一起,引发其两种函数的一种继承方式
- 使用原型链和原型式继承实现对原型属性和方法继承
- 通过借助构造函数实现对实例对象属性的继承
function Parent() {
this.name = '犬夜叉'
// 构造函数点1自有属性
}
Parent.prototype.age = 16;
//构造函数的原型属性
function child() {
parent.call();
//继承父级构造函数中自有属性
this.job = '妖狐'
}
Child.prototype = parent.prototype;
var child = new Child();
console.log(child.job);
console.log(child.age);
console.log(child.name);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。