zoukankan      html  css  js  c++  java
  • js面向对象

      对应于智能社26课。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    	<script>
    		var a = [23,'we',153];
    		a.show = function(){
    			alert('we');	
    		}
    		a.show();
    		console.log("a.show 1_-:"+a.show);/*
    						     a.show 1_-:function (){
    							 alert('we');	
    							}
    						  */
    		console.log("a.show 2_-:"+typeof a.show);  // a.show 2_-:function
    		console.log("a.show 3_-:"+typeof a.show());// a.show 3_-:undefined
    	</script>
    </head>
    
    <body>
    </body>
    </html>
    

      1.一个对象如果有某个方法属性,那上面的代码作为例子,如果要调用这个的话,直接a.show()这种方式就可以。

         2.如果要看这个属性,则只要通过a.show的方式,而不需要加"()";

      

    通过这小段程序的调试,我们可以知道,
    1.一个对象(指的变量a)的属性或者方法属性,我们访问的时候都是通过a.属性的方式,如a.m,a.show。
    2.a.show和a.show()的含义是不同的,前者是访问属性,如就和a.m = "wer"一样,
    a.show = function(){alert('we');} ,而a.show()的含义是执行show这个
    方法属性里的方法的具体代码,这个例子中就是直接在页面上弹出‘we'字样,因此如果想通过下面这种方 式console.log('a.show():'+a.show())
    来查看a.show()到底是什么,那么得到的结果就是 undefined。我个人的理解是这样的,
    console.log('a.show:'+a.show()) ,首先会执行a.show(),即前面讲的执行这个show这个方法属性里的具体方法,即弹出'we',然后执行console.log()代码,这个时候浏览器会认为a.show()是访问点“.”后面的属性即show()这个属性,而通过右上角的调试栏里的代码显示,对象a只有show这个属性,而没有show()这个属性,因此会返回值是undefined。
    总结:a.show()作为单独的一行代码,浏览器则直接执行function show(),而a.show()本身作为其他代码中的一段的时候,那么会先执行function show(),然后访问把show()当作一个属性来访问。

      

  • 相关阅读:
    数位DP
    组合
    卢卡斯Lucas&扩展卢卡斯
    [HNOI2014]道路堵塞
    [模板]三维凸包(无讲解)
    [CF526G]Spiders Evil Plan
    [CCPC2019 ONLINE]H Fishing Master
    [CCPC2019 ONLINE]E huntian oy
    [CF1037H]Security
    [CF1037F]Maximum Reduction
  • 原文地址:https://www.cnblogs.com/Sunnor/p/4639634.html
Copyright © 2011-2022 走看看