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(){})                    

  • 相关阅读:
    iTerm2分屏快捷键
    k8s中运维/测试常用的命令整理(随时更新)
    httpRunner自动化测试用例使用笔记
    Git学习笔记-快速上手(mac系统)
    RBAC权限控制逻辑笔记
    CPS中有关CICD的配置
    LDAP中filter的使用
    Docker初级入门
    C语言 实现 HashTable
    从三个线程 排队打印 , 到 多个线程打印
  • 原文地址:https://www.cnblogs.com/lsy0403/p/5847256.html
Copyright © 2011-2022 走看看