<转>Eclipse插件开发中的Java项目模型

http://developer.51cto.com/art/200906/130101.htm Eclipse插件开发中的Java项目模型是比较重要的内容,也是我们最长接触到的。本文将详细的为大家讲解Java项目模型。 Java项目模型Eclipse的项目有很多种,包括Java项目、C++项目、C#项目等,每种项目都有自己的特点。我们最常接触到的项目就是Java项目,因此我们重点来讲解一下Java项目模型。Java模型是用来对与创建、编辑和构建Java程序相关联的对象进行建模的一些类。Java模型类是在org.eclipse.jdt.core中定义的。这些类实现资源的特定于Java的行为,并进一步将Java资源分解成模型元素。 Java模型的继承结构图如图3.13所示。图3.13 Java模型的继承结构图IJavaElement的子类接口还有IMethod、IType等,在这里没有全部列出。Java模型中的类结构比较简单,级次也非常少。下面介绍一下各个接口的主要方法。(1)  IJavaElementexists:判断元素是...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

iPad应用《许鸿飞》

与团队一起开发的第一个iPad应用《许鸿飞》上线了,欢迎大家下载使用。 下载地址:https://itunes.apple.com/cn/app/xu-hong-fei/id917059783?mt=8&ign-mpt=uo%3D4 也可扫描以下二维码下载:   ...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

JavaScript给动态插入的元素添加事件绑定

由于实际的需要,有时需要往网页中动态的插入HTML内容,并在插入的节点中绑定事件处理函数。我们知道,用Javascript向HTML文档中插入内容,有两种方法,一种是在写HTML代码写入JS,然后插入到文档中;另外一种是通过ajax的方式,从服务器获取数据,然后用js把获取的数据经过处理后插入文档中;两种方法各有特点,本文将分析新插入到文档中的元素的事件绑定问题,并假定新插入的对象不做内联的事件绑定(即不用类似<aonclick=””>的形式)。所有的示例将会用到jQuery和原生Javascript。<body><p>第1行内容</p><p>第2行内容</p><p>第3行内容</p><script>varappendhtml=document.createElement("p");appendhtml.innerHTML="这是插入的内容";document.body.appendChild(appendhtml);varnodep=document.g...

HTML5中canvas与SVG有什么区别

SVGSVG是一种使用XML描述2D图形的语言,它基于XML也就是我们可以为某个元素附加JavaScript事件处理器,如果SVG对象的属性发生变化,那么浏览器能够自动重现图形。CanvasCanvas通过JavaScript来绘制2D图形。它是逐像素进行渲染的,一旦图形被绘制完成,如果它的位置发生了变化,那么整个场景都需要重新绘制,包括任何或者已经被覆盖的对象SVG与canvas的区别(1)SVG是用来描述XML中2D图形的语言,canvas借助JavaScript动态描绘2D图形(2)SVG可支持事件处理程序而canvas不支持(3)SVG中属性改变时,浏览器可以重新呈现它,适用于矢量图,而canvas不可以,更适合视频游戏等。(4)canvas可以很好的绘制像素,用于保存结果为png或者gif,可做为API容器。(5)canvas取决于分辨率。SVG与分辨率无关。(6)SVG具有更好的文本渲染,而Canvas不能很好的渲染,渲染中的SVG可能比Canvas慢,特别是应用了大量的DOM。(7)画布更适合渲染较小的区域。SVG渲染更好的更大区域。SVG与canvas之间的比较SVGc...

数组降维-JavaScript中apply方法妙用

海纳百川,有容乃大1、普通循环转换方式将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性实现更为简洁优雅的转换。本文将从朴素的循环转换开始,逐一介绍三种常用的转换方法,并借此简单回顾Array.prototype.concat方法和Function.prototype.apply方法。以下代码将以把二维数组降维到一维数组为例。functionreduceDimension(arr){varreduced=[];for(vari=0;i<arr.length;i++){for(varj=0;j<arr[i].length;j++){reduced.push(arr[i][j]);}}returnreduced;}此方法思路简单,利用双重循环遍历二维数组中的每个元素并放到新数组中。2、利用concat转换先来回顾一下MDN上对于该方法的介绍: "concatcreatesanewarrayconsistingoftheelementsintheobjectonwhichitisca...

JavaScript 中的 Function.prototype.bind() 方法

转载自:https://www.cnblogs.com/zztt/p/4122352.htmlFunction.prototype.bind()方法bind()方法的主要作用就是将函数绑定至某个对象,bind()方法会创建一个函数,函数体内this对象的值会被绑定到传入bind()函数的值。例如,在f()函数上调用bind()方法并传入参数obj,即f.bind(obj),这将返回一个新函数,新函数会把原始的函数f()当做obj的方法来调用,就像obj.f()似的,当然这时f()函数中的this对象指向的是obj。简单使用情形一varo={f:function(){varself=this;varfff=function(){console.log(self.value);//此时this指向的是全局作用域global/window,因此需要使用self指向对象o};fff();},value:"HelloWorld!"};o.f();//HelloWorld!上例是我们常用了保持this上下文的方法,把this赋值给了中间变量self,这样在内部嵌套的函数中能够使用self访问到对象...

JavaScript中的反柯里化

转载自:https://www.cnblogs.com/zztt/p/4152147.html柯里化柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。请见我的另一篇博客·浅析JavaScript中的函数currying柯里化反柯里化相反,反柯里化的作用在与扩大函数的适用性,使本来作为特定对象所拥有的功能的函数可以被任意对象所用.即把如下给定的函数签名,obj.func(arg1,arg2)转化成一个函数形式,签名如下:func(obj,arg1,arg2)这就是反柯里化的形式化描述。当然是有个前提的,函数y需要语言上支持鸭子类型,引自维基在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。...在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的走和叫方法...例如,下面的一个简单实现:Function.prototype.uncurrying=func...
代码星球 代码星球·2020-03-29

JavaScript中的柯里化

转载自:https://www.cnblogs.com/zztt/p/4142891.html何为Curry化/柯里化?curry化来源与数学家HaskellCurry的名字(编程语言Haskell也是以他的名字命名)。柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。柯里化一个求和函数按照分步求值,我们看一个简单的例子varconcat3Words=function(a,b,c){returna+b+c;};varconcat3WordsCurrying=function(a){returnfunction(b){returnfunction(c){returna+b+c;};};};console.log(concat3Words("foo","bar","baza"));//foobarbazaconsole.log(concat3WordsCurrying("foo"));//[Func...
代码星球 代码星球·2020-03-29

JavaScript中的map()函数

概述Array.map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,同时不会改变原来的数组。用法Array.map(callback);示例//简单数组constarr=[1,3,4,5,6,7,8,10];constcube=(num)=>{returnnum*num;}constres=arr.map(cube);//[1,9,16,25,36,49,64,100]//orconstres=arr.map((num)=>{returnnum*num;})//[1,9,16,25,36,49,64,100]//对象数组和构造器constOjbArray=[{name:'a',age:18,isLikeEat:true,isLikeSleep:true},{name:'b',age:19,isLikeEat:true,isLikeSleep:true},{name:'c',age:22,isLikeEat:true,isLikeSleep:true}];constPerson=(target)=>{return{name:target.name...
代码星球 代码星球·2020-03-29

Javascript中中括号的几种形式

有以下几种形式vararr=[];varb=[1,1,1];varc=b[0];varobj={'name':'tom','age':23};vard=obj['name'];arr和b表示定义的数组c中表示数组的某下标的值d中表示对象的某个属性原文链接:https://blog.csdn.net/weixin_43649130/article/details/91948161...

JavaScript设计模式-组合模式(表单应用实现)

书读百遍其义自见《JavaScript设计模式》一书组合模式在表单中应用,我问你答答案。注:小编自己根据书中的栗子码的答案,如有错误,请留言斧正。另:如有转载请注明出处,谢谢啦<!DOCTYPEhtml><html><head><title>组合模式-表单实现</title><metacharset="utf-8"><styletype="text/css">#FormItem{width:400px;}</style></head><body></body><scripttype="text/javascript">//原型式继承functioninheritObject(o){//声明一个过度对象functionF(){};//过度对象的原型继承父对象F.prototype=o;//返回过度对象的一个实例,该实例的原型继承了父对象returnnewF();}functioninheritPrototype(subClass,superCla...

Javascript设计模式实践之代理模式--图片预加载

图片的预加载就是在加载大图片前,先显示一个loading.gif,就算在网络比较慢的时候也能让人知道正在加载,总比啥反应都没有强。下面这段代码就是预加载的一个简单的实现,假设先不处理加载图片时的onError,onAbort,超时的问题。只关注代码的结构。<!DOCTYPEhtml><html><head><metacharset="utf-8"></head><body><buttonid='btnLoadImg'>加载图片</button><br><divid='imgContainer'></div><br><scripttype='text/javascript'src="./jquery-1.11.3.min.js"></script><scripttype='text/javascript'>$(document).ready(function(){$('#btnLoadImg').bind('c...

js操作对象属性用点和用中括号有什么不同

书读百遍其义自见学习《JavaScript设计模式》一书时,学习工厂模式这一章节,发现了对象后使用中括号的情况,如下:varFactory=function(type,content){if(thisinstanceofFactory){//对于一下this后使用中括号不是很明白vars=newthis[type](content);}else{returnnewFactory(type,content);}}不是很明白,百度了一些解释,如下:中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。中括号运算符可以用纯数字为属性名。点运算符不能。中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。/***在JavaScript里面.可以理解成的*下面的例子中,a.b表示对象a的属性b,既可以设置也可以读取*object[key]=>key为常量时,object[key]等价于object.key,例如:a.b==a['b']*特殊的,object[key]=>key为变量时,只能用中括...

JavaScript中的方法和属性

书读百遍其义自见学习《JavaScript设计模式》一书时,前两个章节中的讲解的JavaScript基础知识,让我对属性和方法有了清晰的认识。如下是我的心得体会以及部分摘录的代码。不同于大多数面向对象语言一样,JavaScript作为一种解释性的弱类型语言,通过自身的一些特性实现类的封装,从而实现面向对象的。面向对象编程的思想就是一些属性方法的隐藏和暴露,比如私有属性、私有方法、共有属性、共有方法等。既然JavaScript实现了面向对象,同样具有这些属性和方法。JavaScript中包含:私有属性(私有方法)特权方法公有属性(公有方法)类静态共有公有属性(类静态公有方法)  注:对象不能访问共有属性(共有方法)静态私有属性(静态私有方法) 注:通过闭包可以实现如下是代码实例: 1<!DOCTYPEhtml>2<html>3<head>4<title>属性与方法</title>5<metacharset="utf-8">6<scripttype="text/javasc...

小程序采坑之静态资源和页面地址不能有空格,否则会提示文件不存在

如题{"pagePath":"pages/tupian/tupian","text":"图片","iconPath":"/images/img.png","selectedIconPath":"/images/imgs.png"}如果是上面这样写肯定会报错的,前面有空格,当时找这个错误找了很长时间,一定要注意...
首页上一页...436437438439440...下一页尾页