prototype的应用详解

K-prototype算法在混合数据聚类中的实战应用与优化策略 本文深入探讨了K-prototype算法在混合数据聚类中的实战应用与优化策略。文章详细解析了该算法如何同时处理数值与分类数据,提供了完整的Python代码实现、常见避坑指南,并重点分享了包括距离函数定制、智能初始化、gamma参数调优在内的核心优化技巧,帮助数据从业者有效应对现实业务中的复杂数据聚类挑战。 阅读详情

ProtoType-JavaScript类库

 

prototype.js 是什么?

prototype.js是由Sam Stephenson写的一个javascript类库。这个构思奇妙,而且兼

容标准的类库,能帮助你轻松建立有高度互动的web2.0 特性的富客户端页面。

  可以从:

     http://www.prototypejs.org/

  下在最新的prototype.js的javascript类库

一、一些实用的函数

这个类库带有很多预定义的对象和实用函数,使用这些函数的目的显然是把你从一些重复的打字中解放出来 。

1、使用$()方法

$() 方法是在 DOM 中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个 DOM 方法一样,这个方法返回参数传入的 id的那个元素。

比起 DOM 中的方法,这个更胜一筹。你可以传入多个 id 作为参数然后 $() 返回一个带有所有要求的元素对象的一个 Array 对象。

<HTML>

 <HEAD>

 <TITLE>未来蓝图</TITLE>

 <script src="./js/prototype.js"></script>

    <script>

       function test1()

       {

         var d = $('d1');

         alert(d.innerHTML);

       }

       function test2()

       {

         var divs = $('d1','d2');

         for(i=0;i<divs.length;i++)

         {

           alert(divs[i].innerHTML);

         }

       }

    </script>

  </HEAD>

  <BODY>

    <div id="d1">

       <p>This is a paragraph</p>

    </div>

    <div id="d2">

       <p>This is another paragraph</p>

    </div>

    <input type="button" value=Test1 onclick="test1();"><br>

    <input type="button" value=Test2 onclick="test2();"><br>

  </BODY>

</HTML>

备注:另外一个好处是,这个函数能传入用string 表示的对象ID,也可以传入对象本身,这样,在建立其它能传两种类型的参数函数时非常有用。

 

2、使用$F()函数

$F()函数是另一个大收欢迎的“快捷键”,它能用于返回任何表单输入控件的值,比如text box,select。这个方法也能用元素id或元素本身做为参数。

<script>

function test3()

{

alert( $F('userName') );

}

</script>

<input type="text" id="userName" value="Joe Doe"><br>

<input type="button" value=Test3 onclick="test3();"><br>

 

 

3、使用$A()函数

$A()函数能把它接收到的单个的参数转换成一个Array对象。

这个方法,结合被本类库扩展了的Array类,能方便的把任何的可枚举列表转换成或拷贝到一

个Array对象。一个推荐的用法就是把DOM Node Lists转换成一个普通的Array对象,从

而更有效率的进行遍历,请看下面的例子。

<script>

function showOptions()

{

var someNodeList = $('lstEmployees').getElementsByTagName('option');

var nodes = $A(someNodeList);

nodes.each(function(node){

alert(node.nodeName + ': ' + node.innerHTML);

});

}

</script>

<select id="lstEmployees" size="10">

<option value="5">Buchanan, Steven</option>

<option value="8">Callahan, Laura</option>

<option value="1">Davolio, Nancy</option>

</select>

<input type="button" value="Show the options" onclick="showOptions();" >

 

4、使用 $H() 函数

$H()函数把一些对象转换成一个可枚举的和联合数组;类似的Hash对象。

<script>

function testHash()

{

//let's create the object

var a =

{

first: 10,

second: 20,

third: 30

};

//now transform it into a hash

var h = $H(a);

alert(h.toQueryString()); //displays: first=10&second=20&third=30

}

</script>

 

5、使用$R()函数

$R()是new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。

跳到ObjectRange 类文档可以看到一个关于此类的完整描述. 此时,我们还是先来看一个例子以展示这个缩写能代替哪些方法吧。其它相关的一些知识可以在Enumerable 对象文档中找到。

<script>

function demoDollar_R(){

var range = $R(10, 20, false);

range.each(function(value, index){

alert(value);

});

}

</script>

<input type="button" value="Sample Count" onclick="demoDollar_R();" >

使

6、使用Try.these()函数

Try.these() 方法使得实现当你想调用不同的方法直到其中的一个成功这种需求变得

非常容易, 他把一系列的方法(函数)作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行,不在向下执行其他的函数,返回成功执行的那个方法的返回值。

在下面的例子中,new ActiveXObject("Microsoft.XMLHTTP")在一些浏览器中好用,但

是new XMLHttpRequest()”在另一些浏览器中正常工作。 使用Try.these()方法我们可以得到

正常工作的那个方法的返回值。

<script type="text/javascript">

     function getxhr()

     {

       return Try.these(f1,f2);

     }

     var f1=function()

     {

        alert("fun1");

        return new ActiveXObject("Microsoft.XMLHTTP");

     };

     var f2=function()

     {

        alert("fun2");

        return new XMLHttpRequest();

     };

    </script>注意:给Try.these()传递的是函数的引用,而不能调用函数。

二、Ajax包中的类

上面提到的通用的方法非常好,但是面对它吧,它们不是最高级的那类应用。它们是吗?你很可能自己编写了这些甚至在你的脚本里面有类似功能的方法。

对prototype.js感兴趣的原因很可能是由于它的AJAX能力。所以让我们解释当你需要完成AJAX逻辑的时候,这个包如何让它更容易。

Ajax包中的对象是预定义的对象,由这个包创建,为了封装和简化编写AJAX 功能涉及的代码。 这个包对象包含一系列的封装AJAX逻辑的类。我们来看看其中几个类。

1、使用Ajax.Request类

如果你不使用任何的帮助程序包,你很可能编写了整个大量的代码来创建XMLHttpRequest对象并且异步的跟踪它的进程,然后解析出响应,然后处理它。当你不需要支持多于一种类型的浏览器时你会感到非常的幸运。

为了支持 AJAX 功能。这个包定义了 Ajax.Request 类。

假如你有一个应用程序可以通过url http://192.168.9.66/app/get_sales?empID=1234&year=1998与服务器通信。服务器端返回数据响应。

用 Ajax.Request对象和服务器通信并且得到数据是非常简单的。下面的例子演示了它是如何完成的。

服务器端代码:

package org.wllt.www.prototype;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SearchEmployee extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException

    {

       this.doPost(request, response);

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException{

       response.setContentType("text/html");

       //PrintWriter out = response.getWriter();

       PrintWriter out =null;

       String empid=request.getParameter("empID");

       String joindate=request.getParameter("year");

       System.out.println(empid+"---"+joindate);

       try{

          Thread.sleep(6000);  

       }catch(Exception e){

         e.printStackTrace();  

       }

       out.println(empid+"---"+joindate);

    }

}

Js代码:

<html>

  <head>

    <title>searchEmp.html</title>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <script type="text/javascript" src="./js/prototype.js"></script>

     <script>

       function searchSales()

       {

         var empID = $F('lstEmployees');

         var y =     $F('lstYears');

         var url = ' http://192.168.2.66/PrototypePrj/SearchEmployee';

         var pars = 'empID='+empID+'&year='+y;

         var myAjax = new Ajax.Request(

          url,{

          method:'get',

          parameters:pars,

            contentType:'application/x-www-form-urlencoded',

encoding:'UTF-8',

          onCreate:function(){

            alert("XMLHttpRequest创建!");

          },

          onComplete:function(v){

            alert("服务器端响应完成"+v.status);

          },//是回调函数

          onSuccess:showResponse,//showResponse是回调函数。当服务器完成响应,把响应值作为参数传给回调函数

          onFailure:function(v){

            alert("服务器异常!"+v.status);

          },

          asynchronous:false

         });

        

         alert("在和服务器交互之后的代码!");

       }

       function showResponse(originalRequest)

       {

         //put returned Data in the textarea

         $('result').value = originalRequest.responseText;

       }

    </script>

  </head>

  <body>

<select id="lstEmployees" size="10" onchange="searchSales()">

  <option value="5">Buchanan, Steven</option>

  <option value="8">Callahan, Laura</option>

  <option value="1">Davolio, Nancy</option>

</select>

 

<select id="lstYears" size="3" onchange="searchSales()">

  <option selected value="1996">1996</option>

  <option value="1997">1997</option>

  <option value="1998">1998</option>

</select>

<br><textarea id=result cols=60 rows=10></textarea>

  </body>

</html>

你注意到传入 Ajax.Request构造方法的第二个对象了吗?参数{method: 'get', parameters: pars, onComplete: showResponse} 表示一个匿名JSON格式的js对象的真实写法。  它表示你传入的这个对象有一个名为 method 属性值为 'get',另一个属性名为 parameters 包含HTTP请求的查询字符串,和一个onComplete 属性指定了当readystate在某个状态下要调用函数showResponse。

还有一些其它的属性可以在这个对象里面定义和设置,如 asynchronous,可以为true 或 false 来决定AJAX对服务器的调用是否是异步的(默认值是 true)。

这个参数定义AJAX调用的选项。在我们的例子中,在第一个参数通过HTTP GET命令请求那个url,传入了变量 pars包含的查询字符串, onComplete表示Ajax.Request 对象在它完成接收响应的时候将调用showResponse 方法(回调函数)。

XMLHttpRequest在HTTP请求期间将报告进度情况。这个进度被描述为五个不同阶段:Create、 Loading, Loaded, Interactive, 或 Complete。你可以使 Ajax.Request 对象在任何阶段调用自定义方法,Complete 是最常用的一个。想调用自定义的方法只需要简单的在请求的选项参数中为名onXXXXX 属性提供自定义的方法对象。 就像我们例子中的 onComplete 。你传入的方法将会被用一个参数调用,这个参数是 XMLHttpRequest 对象自己。你将会用这个对象去得到返回的数据并且或许检查包含有在这次调用中的HTTP结果代码的 status 属性的值。

还有另外两个有用的选项用来处理结果。我们可以在onSuccess 选项处传入一个方法,当AJAX无误的执行完后调用, 相反的,也可以在onFailure选项处传入一个方法,当服务器端出现错误时调用。正如onXXXXX 选项传入的方法一样,(onSuccess和onFailure后面的方法)这两个方法在被调用的时候也传入一个带有AJAX请求的XMLHttpRequest对象作为参数。

该例子没有用任何有趣的方式处理这个数据响应, 我们只是把响应的数据放进了一个文本域里面。对这个响应的一个典型的应用很可能就是找到其中的想要的信息,然后更新页面中的某些元素。

Ajax.Responders类

这个对象维持一个在Ajax 相关事件发生时将被调用的对象的列表。比如,你要设置一个全局钩子来处理 Ajax 操作异常,那么你就可以使用这个对象。

 

在1.4.0版本中,一种新的事件回传处理被引入。如果你有一段代码总是要为一个特殊的事件执行,而不管是哪个AJAX调用引发它,那么你可以使用新的Ajax.Responders对象。

假设你想要在一个AJAX调用正在运行时,显示一些提示效果,像一个不断转动的图标之类的,你可以使用两个全局事件Handler来做到,其中一个在第一个调用开始时显示图标,另一个在最后一个调用完成时隐藏图标。看下面的例子。

<script>

       var myGlobalHandlers ={

         onCreate: function()

{

           Element.show('systemWorking');

         },

         onComplete: function()

         {

if(Ajax.activeRequestCount == 0)

           {

             Element.hide('systemWorking');

           }

         }

        };

       Ajax.Responders.register(myGlobalHandlers);

</script>

<div id='systemWorking'><img src='./imgs/loading.gif'>Loading...</div>

2、使用Ajax.Updater类

如果你的服务器的端返回的信息已经是HTML了,那么使用这个程序包中 Ajax.Updater 类将使Ajax的开发变得更加容易。使用Updater只需提供页面的哪一个元素需要被AJAX请求返回的HTML填充(更新)就可以了。

案例:

(1)服务器端

package org.wllt.www.actions;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet

{

public TestServlet()

{

}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

 

       response.setContentType("text/html;charset=GBK");

       System.out.println(request.getParameter("someParameter"));

       PrintWriter out = response.getWriter();

       out.print("<div style='background:000066;color:FFFFFF'>未来蓝图提示今天:"+new Date()+"</div>");

       out.flush();

       out.close();

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

{

       this.doPost(request, response);

    }

}

(2)客户端

<script>

    function getHTML()

    {

     var url = 'http://192.168.5.66:8000/test/TestServlet';

     var pars = 'someParameter=wllt';

     //Updater构造方法

     varmyAjax=new Ajax.Updater(

     'placeholder',

     url,{

     method: 'post',

     parameters: pars}

     );

    }

</script>

<input type=button value=GetHtml onclick="getHTML()">

<div id="placeholder"></div>

你可以看到,这段代码比前面的例子更加简洁,不包括 onComplete 方法,但是在构造方法中传入了一个元素id。 我们来稍稍修改一下代码来描述如何在客户端处理服务器端错误成为可能。

响应脚本执行

如果你的服务器逻辑响应的文本中既包含HTML 标记也包含JavaScript 代码, Ajax.Updater对象可以执行那段JavaScript代码。为了使这个对象对响应的文本为JavaScript执行,你只需在最后参数的对象构造方法中简单加入evalScripts: true属性。但是值得提醒的是,像这个选项名evalScripts暗示的,这些脚本会被执行,但是它们不会被加入到页面的脚本中。我们假定请求地址返回的内容中有这样的脚本和其它代码:

<script language="javascript" type="text/javascript">

function sayHi()

{

alert('Hi');

}

</script>

<input type=button value="Click Me" onclick="sayHi()">

当你点击按钮的时候,会实现相应的功能; 但是如果上面的代码是服务器端相应的内容,那么这些脚本不会如你所期望的那样工作,原因是这段脚本会被执行,但像上面这样的脚本执行并不会创建一个名叫sayHi的函数,它什么也不做。如果要创建一个函数,我们应当把代码改成下面这个样子:

<script language="javascript" type="text/javascript">

 sayHi=function(){

alert('Hi');

};

</script>

<input type=button value="Click Me" onclick="sayHi()">

为什么我们在上面的代码中不使用var关键字来声明这个变量呢(指sayHi),因为那样做创建出来的函数将只是当前脚本块的一个局部变量(至少在IE中是这样)。不写var关键字,创建出来的对象的作用域就是我们所期望的window(整个网页)。

上面的应用代码如下:

(1)  服务器端

package org.wllt.www.actions;

 

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class TestServlet extends HttpServlet

{

public TestServlet()

{

}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException

{

response.setContentType("text/html;charset=GBK");

System.out.println(request.getParameter("someParameter"));

PrintWriter out =response.getWriter();

out.println("<script language=/"javascript/" type=/"text/javascript/">");

out.println("sayHi=function(){");

out.println("alert('Hi');");

out.print("}");

out.println("</script>");

out.println("<input type=button value=/"Click Me/" onclick=/"sayHi()/">");

out.flush();

out.close();

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       this.doPost(request, response);

    }

}

(2)客户端

<script>

function getHTML()

{

    var url = 'http://192.168.5.66:8000/test/TestServlet';

    var pars = 'someParameter=ABC';

    var myAjax = new Ajax.Updater(

    {success:'placeholder'},

      url,{

      method:'get',

      parameters:pars,

      onFailure:reportError,

      evalScripts:true

     });

    }

    function reportError(request)

    {

      alert('Sorry. There was an error.');

    }

</script>

<input type=button value=GetHtml onclick="getHTML()">

<div id="placeholder" onclick="alert(this.outerHTML);">原来的内容</div>

三、Enumeration枚举(Iterator)

   1、each(function(元素,[下标]){…})

建一个Array,用elements组织它们,再建一个循环结构(例如for,foreach,while)通过index数字来访问每一个element,再用这个element做一些动作。

当你想到这时,你会发现几乎每次写循环代码你都会迟早用到一个Array。那么,如果Array对象能够提供更多的功能给它们的迭代器使用不是很爽吗?确实是这样,事实上很多的编程语言都在它们的Array或其它类似的结构中(如Collections,Lists)提供一些这样的功能。

现在好了,prototype.js了给我们一个 Enumerable对象,它实现了很多和可迭代数据进行交互的窍门。和原有的JS对象相比prototype.js更上一层楼,它对Array 类s扩展了所有枚举要用的函数。

在标准的javascript中,如果你想把一个array中的所有elements显示出来,你可以像下面代码这样写得很好:

<script>

function showList(){

var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg'];

for(i=0;i<simpsons.length;i++)

{

alert(simpsons[i]);

}

}

</script>

<input type="button" value="Show List" onclick="showList();" >

如果改写成prototype.js,我们可以把它生写成这样

<script language="javascript" type="text/javascript">

    function showList()

    {

       var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg'];

       simpsons.each(function(familyMember,i){

          alert(familyMember+"---"+i);

       });

    }

    showList();

    </script>

一个参数传递给each函数,each把它理解成迭代器函数。

就如我们上面提到的,把你的Array中的elements当成相同的类型使用相同的属性和函数是很通用(Common,不知该翻译成通用还是庸俗)的。让我们看看怎么样利用我们新的马力强劲的Arrays的迭代功能吧。

依照标准找到一个element。

<script>

function findEmployeeById(emp_id){

var listBox = $('lstEmployees')

var options = listBox.getElementsByTagName('option');

options = $A(options);

var opt = options.find( function(employee){

return (employee.value == emp_id);

});

alert(opt.innerHTML); //displays the employee name

}

</script>

<select id="lstEmployees" size="10" >

<option value="5">Buchanan, Steven</option>

<option value="8">Callahan, Laura</option>

<option value="1">Davolio, Nancy</option>

</select>

<input type="button" value="Find Laura" onclick="findEmployeeById(8);" >

现在我们再下一城,看看如何过滤一个Array中的元素,从每个元素中得到我们想要的成员。

<script>

function showLocalLinks(paragraph){

paragraph = $(paragraph);

var links = $A(paragraph.getElementsByTagName('a'));

//find links that do not start with 'http'

var localLinks = links.findAll( function(link){

var start = link.href.substring(0,4);

return start !='http';

});

//now the link texts

var texts = localLinks.pluck('innerHTML');

//get them in a single string

var result = texts.inspect();

alert(result);

}

</script>

<p id="someText">

This <a href="http://othersite.com/page.html">text</a> has

a <a href="#localAnchor">lot</a> of

<a href="#otherAnchor">links</a>. Some are

<a href="http://wherever.com/page.html">external</a>

and some are <a href="#someAnchor">local</a>

</p>

<input type=button value="Find Local Links" onclick="showLocalLinks('someText')">

上面的代码仅仅是一点小小的实现,就体现这种语法的强大。

 

 

异常处理:

我们将加入更多的选项, 指定处理错误的一个方法。这个是用 onFailure 选项来完成的。我们也指定了一个 placeholder 只有在成功请求之后才会被填充(更新)。为了完成这个目的我们修改了第一个参数从一个简单的元素id到一个带有两个属性的Json对象, success (一切OK的时候被用到) 和 failure (服务器端有地方出问题比如异常等的时候被用到) 在下面的例子中没有用到failure属性,而仅仅在 onFailure 处使用了 reportError 方法。

<script>

function getHTML()

{

var url = 'http://192.168.5.66:8000/test/TestServlet';

var pars = 'someParameter=ABC';

var myAjax = new Ajax.Updater(

{success: 'placeholder'},

url,{

method: 'get',

parameters: pars,

onFailure: reportError

});

}

//在调用该函数的时候把XMLHttpRequest作为参数传递

function reportError(request)

{

alert('Sorry. There was an error.');

}

</script>

<input type=button value=GetHtml onclick="getHTML()">

<div id="placeholder"></div>

 

四、Form包中的类

(1)、Form.serialize(参数)

    参数:参数为form的ID

功能:将Form中所有Input对象的值转化为一个URL String,方便把Form转为用 URL Get方式

(2)、Form.Element.serialize(表单域)

参数:参数为输入框的ID

功能: Input对象的值转化为一个URL String,方便把Form转为用 URL Get方式

五、Element中的API

(1)、Element.show(id)

   把元素显示 参数是元素id

(2)、Element.hidden(id)

   把元素隐藏 参数是元素id

(3)、Element.remove (id)

   把元素删除 参数是元素id

(4)、Element.replace(id,替换的html或元素的HTML); 

   比如Element.replace("myDiv2",'<img src="./images/1.jpg">');

 把元素替换 参数是元素被替换的id 第二参数是替换的html或元素的HTML

 

Object.prototype.toString.call():妙用 阅读详情

相关推荐

Learning Normal Dynamics in Videos with Meta Prototype Network详解及论文精读

什么是异常行为呢?除了正常的,其他都是异常(并不对异常做明确规定),例如:校园里突然开出一辆车,马路上窜出个野猪(但凡不常规的都是异常)数据集介绍Avenue,UCSD Ped等,异常主要是跑,车等行为。特点:通常数据集中都是正样本,负样本(异常)很少基本都是固定位置的,背景相对不变,前景(人)变化差异较大标注信息很少,导致了这行很多任务都得靠无监督方法来做跨域任务很难,场景基本定死了,拓展比较费劲基本套路无监督方法多一些,训练样本都是正常情况。

qq_52053775的博客 1772

深入理解js的prototype以及prototype的一些应用

  上一篇讲了js的prototype概念,在这里回顾一下prototype的定义:   prototype是函数的一个属性,并且是函数的原型对象。引用它的必然是函数,这个应该记住。   但是,很奇怪,各位看官,你有没有看过类似下面这样引用prototype的js代码: function func(){ var args = Array.prototype.slice.call...

weixin_33720956的博客 372

告别调试烦恼:用Lattice Diamond手把手教你JTAG烧录FPGA(附SRAM/Flash模式详解)

本文详细介绍了使用Lattice Diamond软件进行JTAG烧录FPGA的全流程,包括SRAM临时调试和Flash固化的核心区别。从环境准备、硬件连接到文件准备、烧录模式选择,再到典型问题排查和高级技巧,手把手教你快速掌握FPGA烧录技术,提升开发效率。

weixin_42569329的博客 495

深入理解prototype(原型对象)

对JavaScript中原型模式的理解一:什么是原型对象?有什么优点?    简单的来说,无论何时,我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象包含了通过调用该构造函数所创建的对象共享的属性和方法。其实我们平常的叫法就是指:prototype就是通过该构造函数创建的某个实例的原型对象,但是其实prototype是每个构造函数的属性而已,只能说万物皆

flyingpig2016的博客 3万+

DAP-Link DIY复刻指南

DAP-Link是ARM开源的一个项目,主要用于代码下载以及调试,支持SWD和JTAG调试接口,对于开发嵌入式的同学相信都或多或少有所耳闻。除了DAP-Link之外还有很多同类型的调试器,如ST-LinkJ-Link,但是这些都是不开源的,无法复刻或进行二次开发。但DAP-Link不同,完全开源,不用担心侵权问题,且随着开源社区大家的共同努力,DAP-Link经过了不断的迭代,先如今已取代ARM之前推出的CMSIS-DAP开源项目。

爱出名的狗腿子 1万+

如何使用superpowers

"这个 bug 帮我修一下" → 我会自动走 systematic-debugging → TDD → verify 流程。- "帮我添加一个登录功能" → 我会自动走 brainstorming → plan → TDD → verify 流程。只要任务有 1% 的可能性适用某个技能,我就会先调用它再行动。→ TDD(测试驱动开发)→ verification(验证)→ code review(代码审查)提出需求 → brainstorming(头脑风暴)→ writing-plans(编写计划)

xiaojingjianqiang的博客 610

JavaScript中的prototype使用说明

在JavaScript中并没有类的概念,但JavaScript中的确可以实现重载,多态,继承。这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释。 2、简单的例子 [code="javascript"] var Blog = function( name, url ){ this.name = name; this.url = url; ...

qiuxia812913的专栏 203

基于FPGA的函数信号发生器设计

设计采用波形查找表和相位累加器的方法实现DDS,查找表的数据位宽为8位,采样点数为4096。波形产生范围是100Hz-20MHz,最小频率间隔为1Hz,用8个数码管显示频率,可产生正弦波、方波、三角波,波形用两个led显示,select信号控制,全灭为正弦波,一亮一灭为方波,全亮为锯齿波。为了使频率和相位便于调节,用3个拨码开关控制步进,用8个led显示状态。

FPGA入门到跑路 5636

JavaScript原型链图文详解

原型链原型链思路梳理 原型链 原型链只要仔细梳理, 找出规律就会发现环环相扣也没有那么复杂 思路梳理 一个函数看成是一个构造函数, 专门用来实例化对象function Person(){}; let p = new Person(); 构造函数的显示原型属性prototype和它实例化出来的对象的隐式原型属性__proto__都指向同一个原型对象(Object对象) 当读实例对象的一个属性的时候, 如果在当前实例对象中没有找到这个属性, 那么就会到这个实例对象的原型对象中去找, 比如说, 调用实例对

sosososolong的博客 622

3GPP LTE/NR信道模型

CDL(Clustered Delay Line):簇延迟线模型,包括CDL-A、CDL-B、CDL-C三个用于NLOS的信道模型,以及CDL-D、CDL-E两个用于LOS的信道模型。

LinkEverything的博客 1万+

DreamerV3实战:如何用世界模型在Minecraft中自动挖钻石(附完整训练流程)

本文详细介绍了如何使用DreamerV3世界模型在Minecraft中训练AI智能体自动完成挖钻石的复杂任务。文章深入分析了该任务对强化学习的挑战,提供了从环境配置、模型训练到结果评估的完整实战流程,并分享了关键的调优技巧与问题解决方案,展示了基于模型的强化学习在解决稀疏奖励问题上的强大能力。

weixin_29050271的博客 192

es6 原型继承

es6 原型继承 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-e...

qq_44891434的博客 352

全球、中国各省市县等行政区划(含十段线)shape及geosjon数据免费下载

免费下载全球、中国各省市县等行政区划(含十段线)shape及geosjon数据

mhf403445651的博客 3459

Object.prototype.hasOwnProperty.call() 方法详解与实际应用

详解 Object.prototype.hasOwnProperty.call() 方法如何安全检查对象自身属性,解决方法覆盖和无原型对象调用问题,提升前端代码健壮性的实用技巧。

weixin_43172311的博客 451

C#操作MySQL从入门到精通(3)——新建数据库、新建表

我们要首先新建一个数据库,并且在数据库中新建一系列的表来管理数据库。

qq_34059233的博客 951

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

spring 的singleton 和prototype的区别和应用场合

spring 的singleton 和prototype的区别和应用场合

qq_44597856的博客 607

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Jasna 社区拆解核验:全流程 GPU 马赛克修复流水线,源码里到底能不能对上号

当一个视频马赛克修复工具在短窗口内被多位互不相关的中文技术作者,从「工程落地」「功能全景」「链路对比」等不同角度反复拆解,且结论高度一致时,这本身就是一个值得分析的信号——解读密度高意味着项目进入了「被深度理解」阶段,但也意味着社区论断需要一次系统性核验。Jasna 是一款本地运行的视频马赛克修复工具,其核心功能是全自动检测视频中的马赛克区域并用 GPU 模型将其还原。本文用仓库真实源码与基准数据

gitblog_00004的博客 397

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Apple Watch风格主屏开发实战:基于WatchSpringboard-Prototype的完整教程

WatchSpringboard-Prototype是一个实现Apple Watch风格图标布局的开源项目,它提供了类似Apple Watch主屏的界面原型代码,让开发者能够快速构建具有优雅图标排列效果的应用界面。本教程将带您从零开始了解这个项目的核心功能、实现原理和实际应用方法。 ## 📌 项目核心功能与优势 该项目的核心价值在于实现了Apple Watch特有的图标网格布局系统,主要特点

gitblog_01039的博客 1052

talebook 元数据源插件体系详解:从豆瓣到 AI 的书籍信息检索与自动补全实战

本指南以 talebook 个人书库项目中元数据源(metadata source)插件的完整设计为主线,系统讲解「根据书名、作者或 ISBN 从外部服务查回书籍描述信息与封面候选」这一核心能力的定义边界、内置来源目录、并行检索行为、启用与自动补全策略,并结合 `webserver/plugins/meta/`、`webserver/handlers/book.py` 与 `webserver/s

gitblog_00576的博客 882

js中prototype用法

prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解:   首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类。我们所常见的类包括:数组变量(Ar

637

DesignPatternsPHP:Prototype原型模式克隆技术终极指南

DesignPatternsPHP是一个专注于PHP 8.x设计模式实现的开源项目,其中Prototype原型模式提供了一种高效的对象克隆解决方案,帮助开发者快速创建对象副本,提升代码灵活性与性能。 ## 🤔 什么是原型模式?为什么需要它? 原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制现有对象(原型)来创建新对象,而无需重新初始化。这种"克隆"技术特别适合:

gitblog_01140的博客 1126

(转)javascript中的prototype方法使用说明(详解)

转自:优快云汇贤雅叙(http://www.cnblogs.com/hema/archive/2009/10/30/1593099.html)   prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解:  首先,我们要先了解一下类的...

iteye_4830的博客 177

Spring-Bean的作用域-Prototype

Spring-Bean的作用域-Prototype 一、Prototype 非单一原型范围导致每次对特定 bean 发出请求时都会创建一个新 bean 实例。也就是说,bean 被注入到另一个 bean 中,或者通过getBean()容器上的方法调用来请求它,都是返回一个全新的对象实例。 通常,应该对所有有状态 bean 使用原型作用域,对无状态 bean 使用单例作用域。 与其他作用域相比,Spring并不管理原型bean的完整生命周期。容器实例化、配置和组装一个原型对象,并将其传递给客户端,而不需要进一

weixin_45295678的博客 3508

Array.prototype.slice.call()详解及转换数组的方法

转自:Array.prototype.slice.call()方法

Black_Tmt的博客 707
下一篇: prototype的应用详解
java_sick
博客等级 码龄16年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值