2021年3月31日星期三

便秘别只知道开塞露!4个缓解便秘的方法,总有一个用得上

核心提示:很多的便秘患者都是因为情绪问题,焦虑,精神压力排泄不掉经常性爆发脾气等,都会加重便秘。

作为九·健康科普达人·叔


每天徜徉在知识的海洋中

对各类疾病早已见多不怪

但有一种却每次都会抓住我的心

没错,那就是猝死

↓↓

在大多数人的认知里

猝死的人

据《中国急救医学》杂志

一项关于猝死病例的研究

除去一些常见的原因外

"排便用力"也是猝死的一大诱因

图源:我国5516例尸解猝死病例流行特征分析

看到这,大家是不是瞬间觉得

拉屎都不香了

用力排便

是很多便秘人的常规操作

越是拉不出就越想拉出来

就是在这用力排便过程中

人会有猝死风险

人在准备排便时

会不自觉地采取瓦式呼吸

像这样↓↓↓

吸一口气,再瞬间憋住

然后下盘用力,排出便便

但这种憋气方式

往往会使腹压增高

导致血压升高、心率加快

心肌耗氧量增加

从而诱发心绞痛、心律失常等症状

严重甚至会引起心血管破裂

另外

血压波动较大时

也会增加血管壁斑块的活动

容易让它们脱落而发生心梗

引发猝死

1.诱发神经精神疾患

长期遭受便秘的折磨

会让人精神紧张、焦虑不安、失眠健忘

有的甚至出现精神抑郁

2.直肠癌风险

瑞典医学专家研究发现

患有习惯性便秘的人

尤其是中老年习惯性便秘患者

更易罹患直肠癌


3.引起性生活障碍及小便失禁

相信便秘的人都有过这样的体会

便秘时,整个会阴部

都有一种紧缩、下坠、胀满、隐痛等不适感

这是因为便秘使盆腔肌肉

受到慢性刺激而呈痉挛性收缩状态


久而久之

这些肌肉群就会过度松弛

但这些肌肉群可不是好惹的

它们与性功能有着密切的关系

4.易患乳腺癌

加拿大多伦多癌症研究所的专家发现

便秘者的粪便中存在一种致突变原

这种致突变原经肠道吸收后

会跟着血液循环进入相对敏感的乳腺组织

诱发乳腺癌

危害你们都知道了

叔不会见死不救的

一说到便秘

很多人就想到

通便神器开塞露

这是一种润滑性泻药

能刺激肠壁,软化大便

用不好

还可能刺伤肛门直肠黏膜

造成损伤出血

长期使用还会形成依赖,陷入恶性循环


真正有用的方法是这些↓↓

1.多吃膳食纤维

成人每天膳食纤维的摄入量应达到25~35g

豆类和全谷类食物膳食纤维含量较高

可以适当多吃点,比如

2.培养排便好习惯

人体的中枢神经参与排便

不管是手机、书、还是报纸

都会干扰大脑对排便传导神经的指挥

延长排便时间

久而久之,很容易形成排便困难

或是习惯性便秘


3.保持情绪平稳

很多的便秘患者都是因为情绪问题

焦虑,精神压力排泄不掉

经常性爆发脾气等

都会加重便秘


4.如厕的最佳姿势

从生理结构上来说

当直肠肌与直肠形成的肛肠角度越大

直肠越直时,排便越顺畅

对比来看,蹲姿有助于排便

但如果你的生活环境是坐式马桶

可以学一学这个姿势


参考资料:

[1]亢登峰,李晓英,王英元. 1294例心源性猝死的回顾性分析[J]. 中西医结合心脑血管病杂志,2007(01):63-65.

[2]王振宜. 便秘是疾病还是症状[N]. 上海中医药报,2021-03-05(005).

[3]赵智梅,陈晓松,杨仪君,杜鹏举,周攀豪. 我国5516例尸解猝死病例流行特征分析[J]. 中国急救医学,2020,40(02):158-163.

[4]刘宝华,刘沂.国内外便秘诊治指南比较分析[J].第三军医大学学报,2019,41(19):1846-1851.

[5]樊文彬,蓝海波,谢彦鹏,杨向东.慢性便秘与精神心理障碍的相关性研究[J].中国全科医学,2019,22(34):4272-4276.


[6]张声生,沈洪,张露,叶柏.便秘中医诊疗专家共识意见(2017)[J].中医杂志,2017,58(15):1345-1350.

[7]郑松柏,姚健凤,张颖.老年人慢性便秘的评估与处理专家共识[J].中华老年病研究电子杂志,2017,4(02):7-15.

[8]经纬.长期便秘易猝死[J].中华养生保健,2014(12):14.


原文转载:http://health.shaoqun.com/a/213118.html

跨境电商:https://www.ikjzd.com/

徐家骏:https://www.ikjzd.com/w/1803

houzz:https://www.ikjzd.com/w/236


核心提示:很多的便秘患者都是因为情绪问题,焦虑,精神压力排泄不掉经常性爆发脾气等,都会加重便秘。 作为九·健康科普达人·叔每天徜徉在知识的海洋中对各类疾病早已见多不怪但有一种却每次都会抓住我的心没错,那就是猝死↓↓在大多数人的认知里猝死的人据《中国急救医学》杂志一项关于猝死病例的研究除去一些常见的原因外"排便用力"也是猝死的一大诱因图源:我国5516例尸解猝死病例流行特征分析看
腾邦:https://www.ikjzd.com/w/1382
c88:https://www.ikjzd.com/w/1017
败欧洲网站:https://www.ikjzd.com/w/1555
妻子进产房后 我想另一个女人:http://www.30bags.com/m/a/253116.html
申诉模板范文10篇:https://www.ikjzd.com/tl/6083
独家首发-最新跨境卖家生存数据:https://www.ikjzd.com/home/115446

忍不住挖鼻孔的人,最后怎样了?强制挖鼻综合征,3大后果要承受

核心提示:资料显示,人类已经"挖鼻孔"的历史已经超过6000年。有人说,鼻孔会越挖越大。从人类进化史来看,现代人的鼻孔好像真的比古代人大……

世界上存在从来不挖鼻孔的人吗?就算有人跳出来说"有",我也不会信的!


"挖鼻孔"被当做不雅行为,但几乎每个人都在私底下偷偷摸摸地挖过,那种酥痒的感觉还可能让人停不下来,越挖越上瘾。

你可别不信,早就有人对"挖鼻孔"进行了一番研究。

一、总是忍不住挖鼻孔?这是病!

资料显示,人类"挖鼻孔"的历史已经超过6000年,在古埃及的壁画上就有这样的画面:

图:靓仔,帮你扣个鼻

有人说"鼻孔会越挖越大",从人类进化史来看,现代人的鼻孔好像真的比古代人大。罗兰·弗雷特的《挖鼻史》中就记载了鼻孔大小(cm3)的变化:埃入猿5.3,非洲南方古猿7.5,黑猩猩8.2,现代人9.5……

随着对挖鼻孔研究的深入,挖鼻孔的定义也出来了。

根据《挖鼻史》的记载:"挖鼻子就是从鼻腔取出鼻垢或鼻涕,用拇指和食指夹住,搓捻滚揉成一个小小的球形物,然后把它生吞、涂抹在什么地方,或顺手弹出去的技巧。"罗兰·弗雷特还把挖鼻孔的过程分成了挖取、搓揉、弹送三个步骤。

图源:《挖鼻史》

人类为什么会挖鼻孔?一是因为鼻孔不舒服,二是因为强迫症……

第一个原因我们很熟悉,鼻子进了异物、发痒,或鼻涕、鼻屎太多,堵塞鼻孔导致通气不畅,就会不自觉地用手挖鼻孔;第二个原因已经不受意识层面的控制,而是由潜意识支配。

1995年,美国学者James W. Jefferson和Trevor D. Thompson对挖鼻孔进行了研究,他们把"挖鼻孔挖到了手不离鼻,甚至拔掉鼻毛、挖出鼻血"的行为称为强制性挖鼻综合征(Rhinotillexomania)。

他们从心理学的角度解释,这可能是一种强迫行为。也有研究发现,鼻子的结构中有一个称为海绵状黏膜下静脉丛的组织,当人出现紧张、焦虑、激动等波动较大的情绪时,就会充血膨胀,使鼻子发痒,让人忍不住挖鼻孔。

二、停不下来,或造成3种伤害

不过,挖鼻孔虽然很爽,但久而久之,产生的健康风险可不少,我们试举3例。

1.鼻腔感染

人的手指上携带了很多细菌和病毒,挖鼻孔的时候,手指会把携带的细菌和病毒带入鼻孔,引发鼻腔感染。

2.肺炎风险

英国利物浦热带医学院的研究发现,肺炎细菌可以通过皮肤和鼻腔传播。如果用沾上了肺炎细菌的手指挖鼻孔,肺炎细菌的传播速度会更快,而且传播数量更多。这与新冠期间,我们提倡不用手接触口鼻是一样的道理。


3.损伤鼻毛鼻粘膜

鼻毛可以阻挡灰尘和病原体进入人体,经常挖鼻孔,容易使鼻毛脱落,损伤鼻毛,使人体失去保护屏障。此外,鼻腔还有一层毛细血管丰富的鼻粘膜,鼻粘膜很脆弱,频繁挖鼻孔,会使鼻粘膜受损。

三、用科学的方法清理鼻腔

既然不能频繁地用手指挖鼻孔,那么当我们的鼻子不舒服时,应该怎么清理呢?一般来说,不同的人,清理鼻腔的方法不同。

绝大多数人用温水清洗鼻孔即可,具体步骤为:取适量37℃左右的温水 → 将温水倒入干净的容器中 → 头部稍低,用手将温水捧到鼻孔前 → 轻轻用鼻子把温水吸进鼻腔 → 马上又将温水擤出来。重复上述动作3-4次,即可完成清洗鼻腔的步骤。

鼻炎患者或有严重鼻塞的人,推荐用生理盐水清洗鼻孔,具体步骤为:取容积约为300ml的水杯,加4-6g无碘盐,搅拌均匀 → 将配兑好的盐水倒入洗鼻器 → 头部微侧,一只鼻孔在上一只鼻孔在下,用洗鼻器冲洗鼻腔位于上方的鼻孔 → 调换鼻孔的上下顺序,再次冲洗。

在清洗鼻孔的时候,要注意:

第一,头部一定要稍低,不能仰头,每次吸入鼻腔的水量也不宜太多,以免吸入下呼吸道,引发呛咳或吸入性肺炎;

第二,鼻炎患者在配兑生理盐水时,要控制盐量,盐水浓度过高会使鼻腔干燥或出血;

第三,清洗鼻腔没有严格的时间和次数规定,一般每天清洗2-3次即可。


相信每个人都有挖鼻孔的经历,而且生活中真的有人有事没事就挖鼻孔,形成了一种潜意识行为。频繁挖鼻孔对健康是具有潜在危害的,如果鼻子实在不舒服,建议采取上述方法清洗鼻腔。


参考资料:


[1]你为什么忍不住挖鼻孔?经常挖会让鼻孔变大吗?看完才能真相大白 .腾讯医典.  2020-10-27

[2]当心病从鼻入!挖鼻孔会带来这种危害!护理鼻子的这些小知识,必知!.人民网健康 .2019-10-30

未经作者允许授权,禁止转载


原文转载:http://lady.shaoqun.com/a/277313.html

跨境电商:https://www.ikjzd.com/

五洲会:https://www.ikjzd.com/w/1068

周宁:https://www.ikjzd.com/w/1647


核心提示:资料显示,人类已经"挖鼻孔"的历史已经超过6000年。有人说,鼻孔会越挖越大。从人类进化史来看,现代人的鼻孔好像真的比古代人大…… 世界上存在从来不挖鼻孔的人吗?就算有人跳出来说"有",我也不会信的!"挖鼻孔"被当做不雅行为,但几乎每个人都在私底下偷偷摸摸地挖过,那种酥痒的感觉还可能让人停不下来,越挖越上瘾。你可别不信,早就有人对"挖鼻孔"进行了一番研究。一、总是忍不住挖鼻孔?这是病!资
淘粉吧官网:https://www.ikjzd.com/w/1725.html
myshow:https://www.ikjzd.com/w/2235
递四方:https://www.ikjzd.com/w/1066
紧急禁令!亚马逊&eBay严令禁止销售这款产品!:https://www.ikjzd.com/home/112137
万国邮联与中国联合举办大会:电商零售进出口额1396.2亿元!:https://www.ikjzd.com/home/111531
1年时间10倍销量,只需简单转变你也可以实现!:https://www.ikjzd.com/home/11009

SpringBoot内嵌Tomcat启动原理

SpringBoot应用启动运行run方法,然后一直来到这个Run方法public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList(); this.configureHeadlessProperty(); SpringApplicationRunListeners listeners = this.getRunListeners(args); listeners.starting(); Collection exceptionReporters; try {  ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);  ConfigurableEnvironment environment = this.prepareEnvironment(listeners, applicationArguments);  this.configureIgnoreBeanInfo(environment);  Banner printedBanner = this.printBanner(environment);  context = this.createApplicationContext();//创建Springboot应用程序(即ApplicationContext),根据环境创建的  exceptionReporters = this.getSpringFactoriesInstances(SpringBootExceptionReporter.class, new Class[]{ConfigurableApplicationContext.class}, context);  this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);  this.refreshContext(context);//刷新IOC容器,即创建IOC容器对象,并初始化容器,创建容器中的每一个组件(即Bean)  this.afterRefresh(context, applicationArguments);  stopWatch.stop();protected ConfigurableApplicationContext createApplicationContext() { Class<?> contextClass = this.applicationContextClass; if (contextClass == null) {  try {   switch(this.webApplicationType) {   case SERVLET://如果是Srevlet环境就创建Servlet的SpringBoot应用    contextClass = Class.forName("org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext");    break;   case REACTIVE:    contextClass = Class.forName("org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext");    break;   default:    contextClass = Class.forName("org.springframework.context.annotation.AnnotationConfigApplicationContext");   }  } catch (ClassNotFoundException var3) {   throw new IllegalStateException("Unable create a default ApplicationContext, please specify an ApplicationContextClass", var3);  } } return (ConfigurableApplicationContext)BeanUtils.instantiateClass(contextClass);}public void refresh() throws BeansException, IllegalStateException { Object var1 = this.startupShutdownMonitor; synchronized(this.startupShutdownMonitor) {  this.prepareRefresh();  ConfigurableListableBeanFactory beanFactory = this.obtainFreshBeanFactory();  this.prepareBeanFactory(beanFactory);  try {   this.postProcessBeanFactory(beanFactory);   this.invokeBeanFactoryPostProcessors(beanFactory);   this.registerBeanPostProcessors(beanFactory);   this.initMessageSource();   this.initApplicationEventMulticaster();   this.onRefresh();//web的ioc容器重写了onRefresh方法   this.registerListeners();   this.finishBeanFactoryInitialization(beanFactory);   this.finishRefresh();protected void onRefresh() { super.onRefresh(); try {  this.createWebServer();//创建嵌入式的Servlet容器,不过是先获取容器工厂,再创建容器 } catch (Throwable var2) {  throw new ApplicationContextException("Unable to start web server", var2); }}private void createWebServer() { WebServer webServer = this.webServer; ServletContext servletContext = this.getServletContext(); if (webServer == null && servletContext == null) {  ServletWebServerFactory factory = this.getWebServerFactory();//先获取工厂从ioc容器中获取TomcatServletWebServerFactory 组件(是一个bean来的)   通过这个TomcatServletWebServerFactory创建Tomcat对象,后置处理器一看是这个对象,就获取所有的定制器来先定制Servlet容器的相关配置;  this.webServer = factory.getWebServer(new ServletContextInitializer[]{this.getSelfInitializer()});//再获取容器 } else if (servletContext != null) {  try {   this.getSelfInitializer().onStartup(servletContext);  } catch (ServletException var4) {   throw new ApplicationContextException("Cannot initialize servlet context", var4);  } } this.initPropertySources();}public WebServer getWebServer(ServletContextInitializer... initializers) { if (this.disableMBeanRegistry) {  Registry.disableRegistry(); } Tomcat tomcat = new Tomcat(); File baseDir = this.baseDirectory != null ? this.baseDirectory : this.createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); connector.setThrowOnFailure(true); tomcat.getService().addConnector(connector); this.customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); this.configureEngine(tomcat.getEngine()); Iterator var5 = this.additionalTomcatConnectors.iterator(); while(var5.hasNext()) {  Connector additionalConnector = (Connector)var5.next();  tomcat.getService().addConnector(additionalConnector); } this.prepareContext(tomcat.getHost(), initializers); return this.getTomcatWebServer(tomcat);}protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { return new TomcatWebServer(tomcat, this.getPort() >= 0);//端口号大于0就自动启动}public TomcatWebServer(Tomcat tomcat, boolean autoStart) { this.monitor = new Object(); this.serviceConnectors = new HashMap(); Assert.notNull(tomcat, "Tomcat Server must not be null"); this.tomcat = tomcat; this.autoStart = autoStart; this.initialize();//启动}嵌入式的Servlet容器创建对象并启动Servlet容器;TomcatServletWebServerFactory是在ServletWebServerFactoryConfiguration被加入进容器的注入之后在ServletWebServerFactoryAutoConfiguration被导入

@Import({ ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class,  ServletWebServerFactoryConfiguration.EmbeddedTomcat.class,//导入这个class对象  ServletWebServerFactoryConfiguration.EmbeddedJetty.class,  ServletWebServerFactoryConfiguration.EmbeddedUndertow.class })第二步@Configuration(proxyBeanMethods = false)//判断是否导入了Tomcat依赖,导入了就把TomcatServletWebServerFactory放入ioc容器@ConditionalOnClass({ Servlet.class, Tomcat.class, UpgradeProtocol.class })@ConditionalOnMissingBean(value = ServletWebServerFactory.class, search = SearchStrategy.CURRENT)static class EmbeddedTomcat { @Bean TomcatServletWebServerFactory tomcatServletWebServerFactory(   ObjectProvider<TomcatConnectorCustomizer> connectorCustomizers,   ObjectProvider<TomcatContextCustomizer> contextCustomizers,   ObjectProvider<TomcatProtocolHandlerCustomizer<?>> protocolHandlerCustomizers) {  TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();  factory.getTomcatConnectorCustomizers()   .addAll(connectorCustomizers.orderedStream().collect(Collectors.toList()));  factory.getTomcatContextCustomizers()   .addAll(contextCustomizers.orderedStream().collect(Collectors.toList()));  factory.getTomcatProtocolHandlerCustomizers()   .addAll(protocolHandlerCustomizers.orderedStream().collect(Collectors.toList()));  return factory; }}第三步public WebServer getWebServer(ServletContextInitializer... initializers) { if (this.disableMBeanRegistry) {  Registry.disableRegistry(); } Tomcat tomcat = new Tomcat();//获取Tomcat //配置Tomcat基本环节 File baseDir = this.baseDirectory != null ? this.baseDirectory : this.createTempDir("tomcat"); tomcat.setBaseDir(baseDir.getAbsolutePath()); Connector connector = new Connector(this.protocol); connector.setThrowOnFailure(true); tomcat.getService().addConnector(connector); this.customizeConnector(connector); tomcat.setConnector(connector); tomcat.getHost().setAutoDeploy(false); this.configureEngine(tomcat.getEngine()); Iterator var5 = this.additionalTomcatConnectors.iterator(); while(var5.hasNext()) {  Connector additionalConnector = (Connector)var5.next();  tomcat.getService().addConnector(additionalConnector); } this.prepareContext(tomcat.getHost(), initializers); return this.getTomcatWebServer(tomcat);//开始启动Tomcat}第四步protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { return new TomcatWebServer(tomcat, this.getPort() >= 0);//端口大于0就自动启动}第五步public TomcatWebServer(Tomcat tomcat, boolean autoStart) { this.monitor = new Object(); this.serviceConnectors = new HashMap(); Assert.notNull(tomcat, "Tomcat Server must not be null"); this.tomcat = tomcat; this.autoStart = autoStart; this.initialize();//准备启动}第六步private void initialize() throws WebServerException { logger.info("Tomcat initialized with port(s): " + this.getPortsDescription(false)); Object var1 = this.monitor; synchronized(this.monitor) {  try {   this.addInstanceIdToEngineName();   Context context = this.findContext();   context.addLifecycleListener((event) -> {    if (context.equals(event.getSource()) && "start".equals(event.getType())) {     this.removeServiceConnectors();    }   });   this.tomcat.start();//启动tomcat  }@Bean//如果classpath有Tomcat就把TomcatServletWebServerFactoryCustomizer放入容器@ConditionalOnClass(name = "org.apache.catalina.startup.Tomcat")public TomcatServletWebServerFactoryCustomizer tomcatServletWebServerFactoryCustomizer(  ServerProperties serverProperties) { return new TomcatServletWebServerFactoryCustomizer(serverProperties);}

 









原文转载:http://www.shaoqun.com/a/656723.html

跨境电商:https://www.ikjzd.com/

parser:https://www.ikjzd.com/w/680

kili:https://www.ikjzd.com/w/238


SpringBoot应用启动运行run方法,然后一直来到这个Run方法publicConfigurableApplicationContextrun(String...args){StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=null;Collection<S
blackbird:https://www.ikjzd.com/w/950
黄远:https://www.ikjzd.com/w/1785
naning9韩国官网:https://www.ikjzd.com/w/2401
mile:https://www.ikjzd.com/w/1746
致新卖家-该如何努力,才能做好亚马逊?:https://www.ikjzd.com/home/19446
穿丝袜太性感 老公骂我像妓女:http://lady.shaoqun.com/m/a/271342.html

原型+原型链+闭包+立即执行函数+插件开发初识

一个比较强的分析:针对item的乘除进行封装成方法,针对不同的方法进行item的乘除,但是还是不够简介

 

 

 

 

来个更加简洁的:这就有点像java里面的一些封装,多写这样的代码对之后的专业素养能有一个比较大的提升

 

 

 

原型:

原型prototype其实是function对象的一个属性,将其打印出来它也是对象。

 

 

 

所有被构造函数构造出的对象都可以继承原型上的属性和方法,(当然自己有的先向自己找,自己没有的才去原型上找),任何一个实例化的对象都能访问对应原型上的方法

这就是为什么方法会写在原型上面。属性则写在函数内部,因为属性一般要进行配置

 

 

 

 

让实例化的对象去增加prototype是不行的,只是添加this的属性,

而delete 也是无法删除prototype的属性或方法的,delete 只能删除实例化对象this里面的属性或方法的,无法删除prototype里面的,

对prototype进行规范化写法:因为 xxx.prototype是对象的,所以进行对象化的添加属性与方法,在开发的时候都是这样的写法

 

 

 

 

 

 

 

 

 

 

 

 原型上面的构造器的constructor指向的是构造函数本身:

 

 

 

通过xxx.prototype.constructor= xxx ;

改变对应的函数

__proto的产生:在函数实例化之后形成的this{ __proto__:XXX.prototype}

在这里我们要理解:(__proto__属性一定是属于实例化对象的,而不是属于构造函数的),

这里的this是隐式的,只是一个隐式表达给你,写是无法这样写的

但js内部的写法就是这样子的:

 

 

 

 

 

 

__proto__:设计的时候就是针对自己找不到的属性和方法能够通过__proto__来去寻找到prototype里面的属性与方法,并且为了不让用户修改用了__ 这样的写法,

__proto__相当于一个容器,能够有个指针能够指向prototype,通过指针来去访问实例对象的prototype,相当于门牌号

 

 

 

 

当然__proto__的指向也是能够更改的,只是没有什么意义

 

 

 练习:

 

 

 

 

 这里对var car =new Car()进行了实例化,所以实例化之后的prototype是没有变化的;

 

 

 

 

 

只是在__proto__下面的constructor下面的prototype进行了修改

后面的对Car.prototype ={ name:'Mazda'} 的修改,是没有修改实例化之后的prototype,修改的是实例化之前的prototype

 

 

 

那么这样:car.prototype.name='Mazda'这样是对this里面的__proto__:进行的一个重新赋值,并相当于重写prototype

 

为什么要把某些属性和方法放在prototype里面,为了一些属性值和方法一样的时候放在prototype进行继承,如果要传参数,动态的获取这个属性的时候,才会放在构造函数里面

 

讲一个非常非常有用的东西,跟上面原理不一样,

window和return的问题:

下面这样return 和window实现的是一样的功能

 

 

 

 

window的方法能够直接执行的,因为在函数内部就进行了保存,return则是要进行赋值一个全局变量才能进行执行函数

 

 

 

 

对于立即执行函数是非常好写插件的东西,因为在立即执行函数中声明变量是不会污染全局变量的,可以进行隔离

一个插件的标准:

 

 

 

 

 对于立即执行函数有一个好的习惯先写一个(;分号)主要是为了怕忘记写,程序不会出错,跟函数声明变成表达式是不一样的

 

 

 

作业:

写一个插件,任意传两个数字,调用插件内部方法可进行加减乘除功能

 

    ;(function(){
  var compute =function(opt){
  this.x =opt.firstNum
  this.y =opt.secondNum
  }
  compute.prototype={
  plus:function(){
       return this.x+this.y
  },
  minus:function(){
        return this.x-this.y
  },
  mul:function(){
      return this.x*this.y
  },
  div:function(){
      return this.x/this.y
  }
}
    window.Compute=compute
})()

var compute = new Compute({
    firstNum:1,
    secondNum:2
})

console.log(compute.plus());
console.log(compute.minus());
console.log(compute.mul());
console.log(compute.div());


 









原文转载:http://www.shaoqun.com/a/656722.html

跨境电商:https://www.ikjzd.com/

扬帆计划:https://www.ikjzd.com/w/1581

primc:https://www.ikjzd.com/w/129


一个比较强的分析:针对item的乘除进行封装成方法,针对不同的方法进行item的乘除,但是还是不够简介来个更加简洁的:这就有点像java里面的一些封装,多写这样的代码对之后的专业素养能有一个比较大的提升原型:原型prototype其实是function对象的一个属性,将其打印出来它也是对象。所有被构造函数构造出的对象都可以继承原型上的属性和方法,(当然自己有的先向自己找,自己没有的才去原型上找),
慧聪商务网:https://www.ikjzd.com/w/1836
promoted:https://www.ikjzd.com/w/971
ask me:https://www.ikjzd.com/w/2459
英国VAT申报注册,这六大问题你不得不知!:https://www.ikjzd.com/home/100773
2020年亚马逊品牌备案2.0全攻略(图文版详解):https://www.ikjzd.com/home/125499
我被隔壁少妇勾引出轨 老婆判我"死刑":http://lady.shaoqun.com/m/a/270801.html