精华内容
下载资源
问答
  • Array 对象方法 concat() 连接两个或更多数组,并返回结果。 join() 把数组所有元素放入一个字符串。元素通过指定分隔符进行分隔。 pop() 删除并返回数组最后一个元素。 shift() 删除并返回数组第一个元素...

    Array 对象方法
    concat() 连接两个或更多的数组,并返回结果。

    join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

    pop() 删除并返回数组的最后一个元素。

    shift() 删除并返回数组的第一个元素

    push() 向数组的末尾添加一个或更多元素,并返回新的长度。

    unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

    reverse() 颠倒数组中元素的顺序。

    slice() 从某个已有的数组返回选定的元素

    sort() 对数组的元素进行排序

    splice() 删除元素,并向数组添加新元素。

    toSource() 返回该对象的源代码。

    toString() 把数组转换为字符串,并返回结果。

    toLocaleString() 把数组转换为本地数组,并返回结果。

    valueOf() 返回数组对象的原始值

    JQuery有几种选择器?
    (1)、基本选择器:#id,class,element,*;

    (2)、层次选择器:parent > child,prev + next ,prev ~ siblings

    (3)、基本过滤器选择器::first,:last ,:not ,:even ,:odd ,:eq ,:gt ,:lt

    (4)、内容过滤器选择器: :contains ,:empty ,:has ,:parent

    (5)、可见性过滤器选择器::hidden ,:visible

    (6)、属性过滤器选择器:[attribute] ,[attribute=value] ,[attribute!=value] ,[attribute^=value] ,[attribute$=value] ,[attribute*=value]

    (7)、子元素过滤器选择器::nth-child ,:first-child ,:last-child ,:only-child

    (8)、表单选择器: :input ,:text ,:password ,:radio ,:checkbox ,:submit 等;

    (9)、表单过滤器选择器::enabled ,:disabled ,:checked ,:selected

    展开全文
  •  这个方式明显的优缺点:目的是简化创建包含大量属性的对象,但是每个对象的值都是固定的.为了解决这个问题,出现了工厂模式。 //字面量创建var people= { name:'许涛', age:'12' }//使用Object.create()创建对象...

    1、对象字面量创建单个对象

      这个方式有明显的优缺点:目的是简化创建包含大量属性的对象,但是每个对象的值都是固定的.为了解决这个问题,出现了工厂模式。


    //字面量创建
    var people=
    {
     name:'许涛',
     age:'12'
    }
    //使用Object.create()创建对象,该方法非常有用,因为它允许你为创建的对象选择其原型对象,而不用定义一个构造函数。
    //语法:Object.create(proto, [propertiesObject])
    const me=Object.create(people);
    console.log(me.name);

    proto:新创建对象的原型对象;

    propertiesObject:要添加到新创建对象的可枚举属性对象的属性描述符以及相应的属性名称

    如果 proto 参数不是 null 或一个对象值,则抛出一个 TypeError 异常。

    2、工厂模式

      在ECMAScript中无法创建类(ES6前),开发人员发明了一种函数,用函数来封装创建对象的细节。(实现起来是在一个函数内创建好对象,然后把对象返回)。


    function Person(name,age){
       var o=new Object();
       o.name=name;
       o.age=age;
       o.sayName=function(){
           alert(this.name);
      };
       return 0;
    }

    var p1=Person("海燕",29);
    var p2=Person("涛",27);

      函数Person()能够根据接受的参数来构建一个包含所有必要信息的Person对象。工厂模式虽然解决了创建多个相似对象的问题,但却没有解决具体是那个对象的问题,也就是这个对象的类型。随着JS发展,又一个模式出现了。

    3、构造函数模式

      像Object和Array这样的原生构造函数,在运行时会自动出现在执行环境。此外,也可以创建自定义的构造函数,从而自定义对象类型的属性和方法。

    function Person(name,age){
       this.name=name;
       this.age=age;
       this.sayName=function(){
           console.log(this.name);
      };
    }

    var p1=new Person();
    var p2=new Person();
    console.log(p1 instanceof Person)//检测p1是否在Person的原型链上;

    与工厂模式相比,具有以下特点:

    1. 工厂函数需要创建对象,以及必须有返回值

    2. 直接将属性和方法赋给了this对象;

    3. 工厂函数针对的都是Object的对象模型,而构造函数可以匹配自定义的对象模型

      即前者不论创建什么都只有一个xx instanceof Object

    4. 要创建新实例,必须使用new操作符;(否则属性和方法将会被添加到window对象)

    5. 可以使用instanceof操作符检测对象类型


    //判断是否是他的父类;
    function Person(){};
    function Student(){};
    var p =new Person();
    Student.prototype=p;//继承原型
    var s=new Student();
    console.log(s instanceof Student);//true
    console.log(s instanceof Person);//true

      构造函数弊端 :

    1.如果在全局中定义相同的局部变量,容易造成全局污染,因为this.xx如果在局部获取不到,就会去全局中获取 .

    2.构造函数内部的方法会被重复创建,不同实例内的同名函数是不相等的。可通过将方法移到构造函数外部解决这一问题,但面临新问题:封装性不好。(原型函数就来咯)

    3.构造函数可以重写,可以在全局中添加新属性和方法Person.prototype = {},但工厂函数只能在局部添加

    Person.prototype.sayHello=function(){
       console.log("hello");
    }//使用原型prototype创建对象

    适用场合:

      构造函数:适应用于大型项目,属性以及方法时常变换的项目

      工厂函数:适应用于小型项目,或者正在制作过程还没有成型的项目

    4、原型模式创建对象

      当我们创建了一个函数,就会为这个函数创建一个prototype(原型)属性,这个属性指向函数的原型对象 ,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。(prototype就是通过调用构造函数而创建的那个对象实例的原型对象)。

    当调用构造函数创建一个实例后,这个实例包含一个指针,指针指向函数的原型对象。这个指针叫[[prototype]]

      使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中。

    function Person(){
    }

    Person.prototype.name="海燕";
    Person.prototype.age=23;
    Person.prototype.sayName=function(){
       console.log(this.name);
    };
    var p1=new Person();
    p1.sayName();

      更常见的做法是用一个包含所有属性和方法的对象字面量来重写整个原型对象,并重设constructor属性。

    function Person(){
    }

    Person.prototype={
       name:"海燕",
       age:23,
       sayName:function(){
           console.log(this.name);
      }
    };

    Object.defineProperty(Person.prototype,"constructor",{
       enumerable:false,
       value:Person,
    });

      原型对象的问题

    1.但是原型模式也有自己缺点,他省略了为构造函数传递参数这个环节。结果所有实例默认情况下取得相同的属性值。

    2.最大的问题还是共享引起。如果原型中一个属性包含引用类型值。例如一个数组,当通过一个实例往数组里添加一个元素时,就会影响所有的实例。这就是共享导致的。

      这些问题导致很少单独使用原型模式。

    5、组合使用构造函数模式和原型模式

      这是创建自定义类型的最常见的方式。

      构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。所以每个实例都会有自己的一份实例属性的副本,但同时共享着对方法的引用,最大限度的节省了内存。同时支持向构造函数传递参数。

    function Person(name,age){//构造函数模式,定义实例属性.
       this.name=name;
       this.age=age;
    }
    Person.prototype={//原型模式定义方法和共享属性.
       constructor:Person,
       sayName:function(){
           alert(this.name);
      }
    };

    var p1=new Person("海燕",12);

    6、动态原型模式

    function Person(name,age){
       this.name=name;
       this.age=age;

       if(typeof this.sayName!="function"){
           Person.prototype.sayName=function(){
               alert(this.name);
          };
      }
    }

      这里只有sayName()不存在的情况下,才会将它添加到原型中,这段代码只会在初次调用构造函数时才执行。这里对原型所做的修改,能够立刻在所有实例中得到反映。

    7、Object.create()

    参考第一个模式;

      ES5定义了一个名为Object.create()的方法,它创建一个新对象,其中第一个参数是这个对象的原型,第二个参数对对象的属性进行进一步描述。

    8.寄生构造函数:

    寄生构造函数和工厂模式的区别:没有本质上的区别,通过new操作符的就是寄生构造模式,直接调用的是工厂模式


    function Person(name,age){
       var o=new Object();
       o.name=name;
       o.age=age;
       
       o.getnum=function(){
           console.log(this.name);
      }
       return o;
    }
    var p1=new Person();//加一个new就是寄生构造函数,直接调用就是工厂

    寄生构造函数使用场景:

    我们定义一个array的引用类型:


    var person=new Array("name","age",salary);
    alert("person");
    //打印结果是,隔开.如果我不想用他隔开可以使用join()方法,但是每个都要使用join()就比较麻烦,可以改变Array数组的默认定义输出方式.
    //类似Object,Array,Date等等的拥有原生构造函数的引用类型并不能直接修改其原生构造函数,那么此时寄生构造函数就派上用场了。
    function SpacialArray(){
       //创建数组
       var array=new Array();
       //添加值
       array.push.apply(values,arguments);
       //添加方法
       array.toPipedString=function(){
           return this.join(".")
      }
       //返回数组
       return array;
    }
    var a=new SpacialArray("海燕","杨涛");
    alert(a.toPipedString());

     综上所述,其实寄生构造函数就是在原生构造函数上的一个扩展,也就是你可以利用寄生构造函数来自定义一种引用类型,实现自己想要达到的效果。

    9.稳妥构造函数模式:

    首先明白稳妥对象指的是没有公共属性,而且其方法也不引用this。稳妥对象最适合在一些安全环境中(这些环境会禁止使用this和new),或防止数据被其他应用程序改动时使用稳妥构造函数模式和寄生模式类似,有两点不同:一是创建对象的实例方法不引用this,而是不使用new操作符调用构造函数


    function Person(name,age){
       var o=new Object();
       o.name=name;
       o.age=age;
       o.sayhello=function(){
           console.log("hello")
      }
       return o;
    }
    var p1=new Person("海燕",23);
    p1.sayhello();

    转载:https://www.cnblogs.com/zczhangcui/p/6389023.html;

    转载于:https://www.cnblogs.com/52haiyan/p/9477721.html

    展开全文
  • 首先,通过将视觉注意力集中在显着的原始对象上,将输入图像分为个显着的原始对象(可能包含语义上意义的物理对象的区域)和背景区域(不包含感兴趣的对象的区域)。 然后,一新颖的速率控制方案会根据其显着...
  • 这是一个PowerShell脚本,可搜索所有COM对象并查找包含您选择的关键字的任何方法可能的“深度”。第一个“深度”只是获取COM对象的成员。第二个“深度”是获取COM对象的成员。第三个“深度”,是您猜到的,...
  • 对每个几何模型,选中的方法主要下面几种:这里我们主要使用下面几个按钮 (1) 利用鼠标在视窗中直接进行选择。 首先,保证菜单中的按钮处于选中的状态。 然后再视图中直接点击要选择的几何图形。选择中可以通过...

    image

    上图是我们在3D max 2012中利用多边形建模工具建立的几个简单的几何模型。 对每个几何模型,选中的方法主要有下面几种:这里我们主要使用下面几个按钮

    image

    (1) 利用鼠标在视窗中直接进行选择。

    首先,保证菜单中的按钮处于选中的状态image。 然后再视图中直接点击要选择的几何图形。选择中可以通过Ctrl和Alt进行增加和减少。

    (2)感兴趣区域选择。image

    可以通过拖动鼠标在屏幕上拉出一个区域,进行区域选择。区域有多种方式,例如长方形,自由式,圆等。其中选择的过滤器,可以

    image

    另外,imageimage为选择物体的两种方式,一种是全部包括入内为选择,另一种是有交叠即为选中。

    (3)可以通过“从场景选择”管理器来完成选择。快捷键为“H”。下面的图中罗列的是物体的名称。 双击要选择的物体。

    image

    转载于:https://www.cnblogs.com/bruce81/archive/2013/02/27/2934479.html

    展开全文
  • 几种图像分割方法汇总

    千次阅读 2020-08-19 11:09:23
    图像分割指是将原图像按照灰度、...比如我们研究对象是在一个较暗背景下一个亮图像,其中目标图像像素和背景像素组成了两主导模式,我们可以选择一个灰度值阈值,使用这个灰度值阈值来分离这两个模式,如果像

    图像分割指的是将原图像按照灰度、纹理、颜色、形状等划分成不同的区域,因此,在同一个区域间,呈现出具备一些相同的特点,而在不同的区域间,分割出的各个图像会有一定的差别。
    (1)基于阈值的分割方法
    基于阈值的分割方法是按照原图像的灰度特征划分出一个或者几个灰度阈值,将原图像的每个像素的灰度值与灰度阈值进行比较,继而确定每个像素应该位于哪个区域。
    比如我们的研究对象是在一个较暗的背景下的一个亮图像,其中目标图像像素和背景像素组成了两种主导模式,我们可以选择一个灰度值阈值,使用这个灰度值阈值来分离这两个模式,如果像素的灰度值大于灰度值阈值的话,那么这个像素点就是图像点,反之如果像素点的灰度值比灰度值阈值小的话,那么这个像素点就是背景点。如果使用一个灰度值阈值就可以实现图像点与背景点的分离,这个过程称为全局阈值处理,如果灰度值阈值需要随着图像的不同部分而发生变化的话,这个过程称之为可变阈值处理。另外基于阈值的图像分割方法会受到图像噪声、图像反射是否均匀、光照是否均匀的影响。比如说如果图像的噪声很大,噪声大模式的宽度就会很大,大到一定程度的时候就会使这几个灰度值模式之间的界限不明显,继而无法分割。
    (2)基于边缘的图像分割
    边缘是指一个区域的结束与另一个区域的开始,也就是说图像边缘代表的是两个不同的区域边界线上的一些像素的集合,它一般代表着图像的灰度、纹路、颜色发生了一些突变,是图像局部特征不连续的体现。基于边缘的图像分割方法一般是基于图像灰度值检测的分割方法,即图像边缘是图像灰度值发生突变的一个转折,图像边缘有两个要素:幅度与方向。沿着边缘的方向,灰度值的变化比较小,垂直于边缘的方向,灰度值的变化比较大。因此我们可以对像素的灰度值进行求导来判断图像的边缘。
    (3)基于区域的分割方法
    基于区域的分割方法主要有区域生长、区域分离聚合、分水岭法等。
    区域生长指的是根据同一区域内像素具有一些相似的性质 (灰度值、纹路、颜色) 来聚集像素点的一种方法。我们可以从一个像素或者是一块很小的区域开始,将周围具有相同性质的像素或者区域划入到目前的区域当中,直到没有其他的像素或者是区域能够划入到当前区域为止,以此来实现区域不断增长的过程。
    区域分离与聚合将图像看成是一组不相交的区域。分割指的是将图像进行越来越细的划分,直到最后被划分出来的区域满足同一性质。也就是说对于不满足同一性质的某个图像区域来说,我们将它划分为四个子象限区域,如果子象限区域还不满足同一性质的话,我们继续进行划分,直到所有的区域都满足同一性质。那么此时肯定具有满足同一个性质的邻接区域,我们使用图像聚合就可以充分的弥补这一个缺点。对于满足同一性质的邻接区域来说,我们聚合这些区域,直到不含有具有同一性质的邻接区域为止。
    分水岭法是将图像看为一个山谷地形图,图像中每一个像素的灰度值代表着地形的高度。如果把水滴放在任意的某点,水滴必然会流入的那个极小值点称之为汇水盆地或者为分水岭,水可以等概率的流向的多个汇水盆地的点构成的那条线也叫做分界线或者分水线。分水岭法的实现过程与洪水淹没地形的过程极其类似,我们假设在汇水盆地处钻了一个洞,让水从洞中以均匀的速度上升。水会先没过汇水盆地,然后随着水位的不断上升,水会逐渐没过山谷。当水位上升到一定的程度时,水会发生溢出的现象,我们此时建造堤坝来防止水的溢出,一直重复这个过程直到水没过山谷中的所有点,这时所建造的全部的堤坝就可以看成各个汇水盆地的分界线。堤坝就对应于分水线,这些分水线也就是我们所希望得到的不同区域之间的分界线。
    (4)基于图论的图像分割
    图是由一定的顶点以及连接这些顶点的边组成,假如图G有顶点集V和边集E组成,则图有下列表示:
    G=(V,E)
    如果图中的边是没有方向的,那么就叫做这个图为无向图,反之,为有向图。也就是说对于无向图来说,若(Vi,Vj)属于图G,则必有(Vj,Vi)属于图G。有向图则不然。如果图中的边是有一定权值的话,那个这个图就被称为带权图。
    基于图论的分割方法就是把要进行分割的图像看成是一个带权无向图。原图像中的各像素点就是带权无向图中的结点。边是在各结点之间形成的。边的权值W(i,j)可以反正出顶点i与顶点j之间的相似程度,其可以由空间关系(如顶点i到顶点j的距离)与灰度测试(如纹理、颜色、灰度值)形成。我们可以将原带权无向图按照每各个像素之间的相似程度切割成若干个子集区域。每个子集区域内的像素相似度比较高,不同的子集区域的像素相似性较低。切割的过程实际上就是去除相似度低的结点之间的边。

    展开全文
  • 主要可以优化的对象有,关键词选取,关键词分析以及关键词布局等。主要优化策略,选取流量词作为关键词,页面关键词布局选用搜索引擎喜欢方式等等。 2 例如,可以这样制定网站优化策略,选择平时用户...
  • 相信你看过之后一定会觉得CSS垂直居中其实是件很简单的事情利用 S 来实现对象的垂直居中许多不同的方法,比较难的是选择那个正确的方法我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站 使用 SS 实现...
  • 选区的几种方法及需要注意地方

    千次阅读 2013-03-10 07:57:10
    创建选区的几种方法: 选区情况 使用情况 特点 根据图像外形进行选择,如矩形、正圆形和椭圆形等基本几何形状。 选框工具组 选框工具一个共同特点,就是能够简单、直接地选择图像;但...
  • 在Spring框架中如下3获得DataSource对象的方法: 从JNDI获得DataSource.从第三方的连接池获得DataSource.使用DriverManagerDataSource获得DataSource. 一、从JNDI获得DataSource SpringJNDI数据源配
  • 面向对象的特征主要以下个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...
  • Java中5种创建对象的方法 今天来聊一聊在Java创建对象的几种方法. 使用new关键字 Class对象(3种方式获取,任意选择一种即可)的newInstance()方法 构造函数对象的newInstance()方法 对象反...
  • 介绍 每当我使用pandas进行分析时...基本过程并不困难,但因为有几种不同的选择,所以有助于理解每种方法的工作原理。 我永远记不住我是否应该使用 from_dict , from_records , from_items 或默认 DataFrame 构造
  • 大部分学习编程的人群都是从c语言开始入手的,人们就会潜意识叫做先入为主,就算后来学习过面向对象的方法也是跟结构化方法混为一谈,总是觉得哎,面向对象嘛,我晓得,就是把原来的变量变为某某类别里面的一...
  • IOS 开发中,经常会遇到需要把一些数据保存在本地情况,那么这个时候我们以下几种可以选择的方案: 一、使用NSUserDefault是最简单直接一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例...
  • 远程通信的几种选择

    2016-07-11 15:29:00
    RPC(Remote Procedure Call Protocol)所谓远程过程调用 (面向方法) ...这个请求包括一个参数集...优点是跨语言跨平台,C端、S端更大独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 ---...
  • 最近,公司招了一批新人,吃饭的时候恰好碰到一个新...利用 CSS 来实现对象的垂直居中许多不同的方法,比较难的是选择那个正确的方法。 使用 CSS 实现水平居中很容易,但要实现垂直居中并不容易。而且有些方法在...
  • [SQL]将Excel表数据导入SQL Server2005的几种方法归纳 数据库 2010-07-27 11:14:26 阅读201 评论0 字号:大中小 订阅 近日在巨轮着手车间负荷数据处理,反馈回来数据是保存在Excel文件中,我必须将其导入SQL ...
  • 第二是用jQuery对象的几个methods(方法)。这两方式还可以联合起来混合使用。我们来试着在我们的test.html代码中选择并修改第一个ordered list.一开始,我们需要选择这个list本身,这个list一个ID叫“ordered...
  • 依赖注入的方式有几种,各是什么? 一、构造器注入 将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。 优点: 对象初始化完成后便可获得可使用的对象。 缺点: 当需要注入的对象很多时,...
  • 多种注入方式,每方式只需注入指定个依赖,那么就需要提供多个重载构造函数,麻烦。 二、setter方法注入 IoC Service Provider通过调用成员变量提供setter函数将被依赖对象注入给依赖类。 优点: 灵活。...
  • CSS 新手来说可能是一个经常遇到的麻烦事情在这里我们用 5 不同的方法轻易地帮你通过 CSS 实 现内部元素垂直居中相信你看过之后一定会觉得 CSS 垂直居中其实是件很简单的事情利用 CSS 来实现对象的垂直居中 ...
  • .NET 保存用户状态的几种选择

    千次阅读 2008-09-05 15:25:00
    你可以使用Application对象、cookie、hidden fields、Sessions或Cache对象,以及它们的大量的方法。决定什么时候使用它们有时很困难。本文将介绍了上述的技术,给出了什么时候使用它们的一些指导。尽管这些技术中...
  • Double类型覆写了 ToString方法用于返回对象的值。 <wbr></wbr> String类型转换为Double类型,多种方法可供选择:string str = "123.456"; Double num= 0...
  • 选择自 younther 的 Blog管理对象的信息查询和方法访问 在这一节内容,我们将通过个实例来学习如何查询管理对象信息和访问管理对象提供的方法,这一部分内容将使用到我们在前面讲述到的System.Management命名空间...
  • 前言 Spring的IOC极大的方便了我们的编程,当我们需要某个对象的时候,不在需要自己去...Spring配置方法,这三配置方式如何选择?先看一下这三配置方式 XML applicationContext.xml <?xml version="1.0.
  • 属性注入指通过setXxx()方法注入Bean属性值或依赖对象。由于属性注入方式具有可选择性和灵活性高优点,因此属性注入是实际应用中最常采用注入方式。 构造函数注入 构造函数注入是除属性注入外另一常用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,229
精华内容 491
关键字:

选择对象的方法有几种