1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承

js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承

时间:2020-01-09 15:43:26

相关推荐

js原生设计模式——2面向对象编程之继承—new+call(this)组合式继承

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>groupInherit</title>

<script type="text/javascript">

//声明父类

function superClass(name){

this.name = name;

this.books = ['html','css','js'];

}

superClass.prototype.getName = function(){

console.log(this.name);

}

superClass.prototype.getBooks = function(){

console.log(this.books);

}

//声明子类

function subClass(name,time){

superClass.call(this,name);//让子this指向父this,后面带的是父类需传入的参数name

this.time = time;

}

subClass.prototype = new superClass();//类式继承

subClass.prototype.getTime = function(){

console.log(this.time);

}

//测试用例:实例化对象测试

var test1 = new subClass('js book',);

var test2 = new subClass('css book',);

test1.books.push('php');//test2插入的数据'php'不影响test1

console.log(test1.name); //'js book'

console.log(test1.books); //["html", "css", "js", "php"]

test1.getName(); //'js book'

test1.getBooks(); //["html", "css", "js", "php"]

test1.getTime(); //

console.log(test2.name); //'css book'

console.log(test2.books); //["html", "css", "js"]

test2.getName(); //'css book'

test2.getBooks(); //["html", "css", "js"]

test2.getTime(); //

//本例已经通过验证,this属性和原型方法均能访问

</script>

</head>

<body>

</body>

</html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。