• javascript面向对象属性和方法


    javascript中的属性和方法归归类,大概有这么四种类型,

    (1) 私有类型:相当于java或者C#中的private类型,不可以直接访问,需要通过 getter,setter。

    (2) 动态公共类型:每个对象共享一个副本,外部可以访问

    (3) 静态公共类型:通过原型延伸出来的属性

    (4) 类属性:作为类型的属性,直接通过类名可以访问的。

    举例来说:

     1   function widget() {
    2 var width="100px"; //私有属性
    3 this.Name = "widget"; //动态公共属性
    4 var Show = function () { //私有方法
    5 alert(width);
    6 }
    7 this.Hide = function () {//动态的公共方法
    8 alert("hide");
    9 }
    10 this.GetWidth = function(){return width;}
    11 }
    12 widget.minPrice = 0;
    13 widget.prototype = {
    14 minWidth:"100px",
    15 minHeight:"100px"
    16 };
    17 var w = new widget();
    18 alert(w.width); //显示结果:undefined
    19 alert(w.GetWidth());//getter,显示:100px
    20 alert(w.Name);//公共属性,显示:widget
    21 alert(w.minPrice);//
    22 alert(widget.minPrice);静态属性,无法通过对象访问,显示结果:undefined
    23 var wex = new widget();
    24 alert(w.minHeight);//原型属性,对象访问
    25 alert(wex.minHeight);

    原型属性需要补充呢。。

    OK,公有,私有,都有了,那么javascript里如何实现封装?你懂的。。。
    回顾一下扩展jQuery的时候,有两个重要的方法:

    1 jQuery.fn.extend(object);  
    2 jQuery.extend(object);

    这两个方法有何区别,很简单哦,第一行是扩展jQuery对象的属性,第二行是扩展jQuery类本身的属性。看看它的源码就知道了:

    1 jQuery.fn = jQuery.prototype = {      
    2    init: function( selector, context ) {//…. 
    3
    4    //……
    5
    6 };

    jQuery.fn = jQuery.prototype

    你懂的。

  • 相关阅读:
    AngularJS 国际化——Angular-translate
    Elasticsearch Span Query跨度查询
    Elasticsearch 连接查询
    Elasticsearch DSL中Query与Filter的不同
    Lucene查询语法详解
    Elasticsearch 文件目录解释
    Elasticsearch 安装与启动
    《大屏可视化数据》该怎么设计?
    两个大屏可视化案例的布局与实现
    maven 安装后变成 mvn 不是内部命令解决方法
  • 原文地址:https://www.cnblogs.com/xinchuang/p/2295250.html
Copyright © 2020-2023  润新知