扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
今天小编要跟大家分享的文章是关于Javascript继承的常用4种方法。相信很多学习web前端开发技术的小伙伴在学习前端开发的javascript部分的时候,在面向对象的部分就很难走下去了,主要的原因还是逻辑更加复杂了,需要理解的内容比直观的开发布局难一点。
十余年的牟定网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整牟定建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“牟定网站设计”,“牟定网站推广”以来,每个客户项目都认真落实执行。
在面向对象编程里,封装和继承是比较重要的,这中间,继承是相对而言比较难理解的,因为javascript的继承方式比较多,也有不同的优缺点。今天小编为大家带来这篇文章就是来和大家一起说一说Javascript继承的常用4种方法,希望能够对你有所帮助。
1、原型链继承
核心:将父类的实例作为子类的原型
缺点:父类新增原型方法/原型属性,子类都能访问到,父类一变其它的都变了
2、构造继承
基本思想
借用构造函数的基本思想就是利用call或者apply把父类中通过this指定的属性和方法复制(借用)到子类创建的实例中。
因为this对象是在运行时基于函数的执行环境绑定的。也就是说,在全局中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
call、apply方法可将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象。
所以,这个借用构造函数就是,new对象的时候(new创建的时候,this指向创建的这个实例),创建了一个新的实例对象,并且执行Parent里面的代码,而Parent里面用call调用了Person,也就是说把this指向改成了指向新的实例,所以就会把Person里面的this相关属性和方法赋值到新的实例上,而不是赋值到Person上面,所以所有实例中就拥有了父类定义的这些this的属性和方法。
因为属性是绑定到this上面的,所以调用的时候才赋到相应的实例中,各个实例的值就不会互相影响了。
核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用到原型)
缺点:方法都在构造函数中定义,
只能继承父类的实例属性和方法,不能继承原型属性/方法,无法实现函数复用,每个子类都有父类实例函数的副本,影响性能
3、组合继承
组合继承(所有的实例都能拥有自己的属性,并且可以使用相同的方法,组合继承避免了原型链和借用构造函数的缺陷,结合了两个的优点,是最常用的继承方式)
核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后再通过将父类实例作为子类原型,实现函数复用
缺点:调用了两次父类构造函数,生成了两份实例(子类实例将子类原型上的那份屏蔽了)
4、寄生组合继承
核心:通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候,就不会初始化两次实例方法/属性,避免的组合继承的缺点
缺点:堪称完美,但实现较为复杂
以上就是小编今天为大家分享的关于web前端学习之Javascript继承的常用4种方法的文章,希望本篇文章能够对正在学习web前端技术的小伙伴们有所帮助。想要了解更多web前端知识记得关注北大青鸟web培训官网。
文章转载自公众号:前端研究所
body
script type="text/javascript" src="jquery-1.8.3.js"/script
script type="text/javascript"
$(document).ready(function() {
$("#btn").click(function() {
var start = $("#txt1").val();
var end = $("#txt2").val();
alert(start);
start = start.replace(/-/g, "/");
var startdate = new Date(start);
end = end.replace(/-/g, "/");
var enddate = new Date(end);
var time = enddate.getTime() - startdate.getTime();
alert(time);
var days = parseInt(time / (1000 * 60 * 60 * 24));
alert('相差'+days+'天');
});
});
/script
input type="text" id="txt1" value="2015-05-06" /
input type="text" id="txt2" value="2015-06-07" /
input type="button" id="btn" value="点击"
/body
《超实用的JavaScript代码段》百度网盘pdf最新全集下载:
链接:
?pwd=8eir 提取码: 8eir
简介:全书分为9章,包括JavaScript的一些必备知识,常用的表单处理、图片处理、内容展示、页面处理、日期处理、页面特效、移动开发等代码及其他常用代码,涉及闭包、Ajax、Data URI、DOM、BOM、数据字典、HTML 5、XML、JSON等现代JavaScript开发常用的技术。对那些想迅速全面了解JavaScript代码处理技巧的前端开发人员有重要的指导意义。
易语言是单机程序开发语言,Javascript是网页前端脚本语言,两者基本上无交集,所以没法对比。
如果一定要对比,那么我会说易语言比较简单(别说你不知道“易”作为中文是什么意思),javascript则比较实用(因为它是网页脚本,而网页是跨平台的,任何能够浏览网页的设备如PC、智能手机、平板以及各种智能家电,都可以运行javascript哦)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流