zoukankan      html  css  js  c++  java
  • 关于javascript中静态成员和实例成员的详细解释

    关于javascript中静态成员和实例成员的详细解释 

         在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例?  

       实例就是由构造函数创建出来的对象。

         例如案例中 p 就是实例:   

         function Person() {}//  此函数为构造函数   

         var p=new Person();  // p为构造函数创建出来的对象

         我们在讨论静态成员和实例成员时候,把函数当成构造函数, 把创建出来的对象称之为实例。在此明白了什么是实例,下面我们就可以说什么是静态  成员和实例成员了。

      首先什么是实例成员?

       实例成员:由构造函数创建出来的对象能直接访问的属性和方法,包括:对象本身 以及原型中的所有的属性和方法。

       案例如下: function Person(name, age) {

                                 this.name = name;  

                                  this.age = age;  

                                      }

                     Person.prototype.sayHi = function() {

                                                           console.log("hello, rose");   

                                                        };  

                                                  var p = new Person("jack", 19);    

                                    ( p.name  p.age  p.sayHi)  括号内三个就是实例成员了。

              再次什么是静态成员?

              静态成员:由构造函数直接访问到的属性和方法。大家注意是直接访问的属性和方法,间接获取就不是了。

              案例如下: function Person(name, age) {  

                                                  this.name = name;

                                                        this.age = age;  

                                                          }

                                   var p = new Person("jack", 19);                

                                Person.say = function() {    alert("这是静态方法");            };        

                                         Person.say  就是静态成员            

                                          Person.length  也是静态成员,因为length是函数中的 方法,是来直接获取函数中形参的个数。

                               接下来会有人问,在实际工作中有什么用?我个人认为工作中用到的机会不多,有人会说工作中既然用的不多,  干嘛还废那么话来说,但是对于我们看Jquery源码是有用处的。         

          jQuery 的 each方法就是给静态成员实现这个方法,然后实例成员直接调用这个方法(大多数框架中都是使用该方法) 。    

            所有有了两种使用方式:

                    $.each("div",function(){}) 

                    $("div").each(function(){})                    

  • 相关阅读:
    java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码
    PHP5.5.13 + Apache2.4.7安装配置流程详解
    mybatis-generator 自动生成mapper以及实体类
    spring cloud之Feign的使用
    spring cloud 初体验
    redis 分布式锁
    Activiti 工作流之所学所感(基本配置) DAY1
    druid 连接池加密算法
    ssm+redis整合(通过aop自定义注解方式)
    aop (权限控制之功能权限)
  • 原文地址:https://www.cnblogs.com/lsy0403/p/5847256.html
Copyright © 2011-2022 走看看