js面向对象继承
Posted 凌晨四点的北京
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js面向对象继承相关的知识,希望对你有一定的参考价值。
js的面向对象变成其实是基于对象的开发(js是没有累的概念);
1:任何基于对象的变成都有三个特征,抽象封装,继承,多态。
1 抽象封装:抽象指抽取对象的属性和行为(方法),然后有机的结合在一起,这个过程叫做封装,结果就是只对外提供接口(通过this创建共有属性共有方法),而隐藏内部的实现(共有方法可以调用私有的方法)。
2 :继承:子类实现拥有父类的属性和方法的过程称之为继承;常用的继承凡事如下两种。
1:call或者apply
function F(x){
this.x=x
this.sayX=function(){
alert(this.x)
}
}
function Y(x){
F.call(this,x);
//F.apply(this,agruments);
}
var t=new Y(2);
alert(t.sayX())//2
注意??:call apply是无法调用
function F(x){
this.x=x
}
F.prototype.sayX=function(){
alert(this.x)
}
function Y(x){
F.call(this,x);
}
var t=new Y(2);
alert(t.sayX())//new_file.html?__hbt=1524886368955:91 Uncaught TypeError: t.sayX is not a function
2 原型链继承
function Person(name, sex){
this.name=name;
this.sex=sex;
}
Person.prototype.showName=function(){
alert(this.name);
}
Person.prototype.showSex=function(){
alert(this.sex);
}
function worker(name,sex,job){
this.job=job;
Person.apply(this,arguments)//获取公有的属性
}
worker.prototype=new Person()
worker.prototype.sayJob=function(){
alert(this.job)
}
var n=new worker(‘xxw‘,‘nan‘,‘chenguxyuan‘);
console.log(n)
alert(n.showName())//xxw
alert(n.showSex())//nan
alert(n.sayJob())//chenguxyuan
3 多态
js 天然支持多态度
通过判断参数argumrnts还有若数据类型,赋值什么数据就是什么数据
以上是关于js面向对象继承的主要内容,如果未能解决你的问题,请参考以下文章