我能';t在javaScript中获取此结构:var some=(function(){…lotsofcode})();
我是js的noob,有processing.org的背景,这是一个java框架。 我正试图通过一个处理附带的示例来理解下面的代码。现在我对javaScript做了一些研究。但是这个我能';t在javaScript中获取此结构:var some=(function(){…lotsofcode})();,javascript,processing,processing.js,Javascript,Processing,Processing.js,我是js的noob,有processing.org的背景,这是一个java框架。 我正试图通过一个处理附带的示例来理解下面的代码。现在我对javaScript做了一些研究。但是这个 var someName=(函数(){..code,code,code…})() 把我弄糊涂了 我知道 var name=function(){}//构建一个函数 或 var name={code}//生成obj 甚至 函数名(…){…}//对象 但是。。。括号之间的东西替换了参数?我不明白 下面是完整的代码(我指的
var someName=(函数(){..code,code,code…})()代码>
把我弄糊涂了
我知道
var name=function(){}//构建一个函数
或
var name={code}
//生成obj
甚至
函数名(…){…}
//对象
但是。。。括号之间的东西替换了参数?我不明白
下面是完整的代码(我指的是这个函数,该代码旨在与浏览器中processing.js中运行的processing进行html输入标记的通信,可以看到它也在运行从那里链接的所有代码)
谢谢你的帮助。谢谢
var Controller = (function(){
function Controller () {
var sketch = arguments[0];
var form = document.getElementById(arguments[1]);
form.onsubmit = function () {return false};
var inputs = {};
this.createInputElement = function ( id, type, labelStr ) {
var input = document.createElement('input');
input.id = id;
input.name = id;
input.type = type;
if ( labelStr !== undefined && labelStr !== '' )
{
var label = document.createElement('label');
label['for'] = id;
label.id = id+'-label';
label.innerHTML = labelStr;
form.appendChild(label);
}
form.appendChild(input);
return input;
}
this.addInputField = function ( l, t ) {
var id = createIdFromLabel(l);
if ( inputs[id] == undefined ) {
inputs[id] = this.createInputElement(id, t, l);
inputs[id].onchange = function(){
changeFunc()(sketch, id, this.value);
return false;
}
}
return inputs[id];
}
this.addRange = function ( l, c, mi, mx ) {
var input = this.addInputField( l, "range" );
input.value = c;
input.min = mi;
input.max = mx;
return input;
}
this.addPassword = function ( l ) {
var input = this.addInputField ( l, "password" );
return input;
}
this.addEmail = function ( l ) {
var input = this.addInputField ( l, "email" );
return input;
}
this.addSearch = function ( l, c ) {
var input = this.addInputField ( l, "search" );
input.value = c;
return input;
}
this.addNumber = function ( l, c ) {
var input = this.addInputField ( l, "number" );
input.value = c;
return input;
}
this.addTelephone = function ( l, c ) {
var input = this.addInputField ( l, "tel" );
input.value = c;
return input;
}
this.addUrl = function ( l, c ) {
var input = this.addInputField ( l, "url" );
input.value = c;
return input;
}
this.addDate = function ( l, c ) {
var input = this.addInputField ( l, "date" );
input.value = c;
return input;
}
this.addCheckbox = function ( l, c ) {
var id = createIdFromLabel(l);
if ( inputs[id] == undefined ) {
inputs[id] = this.createInputElement(id, "checkbox", l);
inputs[id].onchange = function(){
changeFunc()(sketch, id, this.checked);
return false;
}
}
inputs[id].checked = c ? 'checked' : '';
return inputs[id];
}
this.addTextfield = function ( l, c ) {
var id = createIdFromLabel(l);
if ( inputs[id] == undefined ) {
inputs[id] = this.createInputElement(id, "text", l);
inputs[id].onchange = function(){
changeFunc()(sketch, id, this.value);
return false;
}
}
inputs[id].value = c;
return inputs[id];
}
this.addTextarea = function ( l, c ) {
var id = createIdFromLabel(l);
if ( inputs[id] == undefined ) {
var label = document.createElement('label');
label['for'] = id;
label.id = id+'-label';
label.innerHTML = l;
form.appendChild(label);
inputs[id] = document.createElement('textarea');
inputs[id].id = id;
inputs[id].name = id;
inputs[id].innerHTML = c;
inputs[id].onchange = function(){
changeFunc()(sketch, id, this.value);
return false;
}
form.appendChild(inputs[id]);
}
inputs[id].value = c;
return inputs[id];
}
this.addSelection = function ( l, o ) {
var id = createIdFromLabel(l);
if ( inputs[id] == undefined ) {
var label = document.createElement('label');
label['for'] = id;
label.id = id+'-label';
label.innerHTML = l;
form.appendChild(label);
var select = document.createElement('select');
select.id = id;
select.name = id;
if ( o !== undefined && o.length && o.length > 0 ) {
for ( var i = 0; i < o.length; i++ ) {
var value = o[i].length > 1 ? o[i][1] : i;
var option = document.createElement('option');
option.innerHTML = o[i][0];
option.value = value;
select.appendChild(option);
}
}
select.onchange = function( event ){
changeFunc()(sketch, id, this.value);
return false;
}
inputs[id] = select;
form.appendChild(inputs[id]);
}
return inputs[id];
}
this.addMenu = this.addSelection;
this.setElementLabel = function ( element, labelStr ) {
var label = document.getElementById(element.id+'-label');
if ( label && label.childNodes && label.childNodes.length > 0 ) {
label.childNodes[0].textContent = labelStr;
} else {
//console.log([element, label]);
}
}
}
var changeFunc = function () {
return function ( sketch, id, value ) {
try {
sketch[id](value);
} catch (e) {
//console.log(e);
sketch.println( "Function \"void "+id+"(value)\" is not defined in your sketch.");
}
}
}
var createIdFromLabel = function ( l ) {
return l.replace(/^[^-_a-z]/i,'_').replace(/[^-_a-z0-9]/gi,'');
}
return Controller;
})();
var控制器=(函数(){
函数控制器(){
var sketch=参数[0];
var form=document.getElementById(参数[1]);
form.onsubmit=函数(){return false};
变量输入={};
this.createInputElement=函数(id、类型、labelStr){
var input=document.createElement('input');
input.id=id;
input.name=id;
input.type=type;
if(labelStr!==未定义&&labelStr!=='')
{
var label=document.createElement('label');
标签['for']=id;
label.id=id+'-label';
label.innerHTML=labelStr;
表格.附件(标签);
}
表单。追加子项(输入);
返回输入;
}
this.addInputField=函数(l,t){
变量id=createIdFromLabel(l);
if(输入[id]==未定义){
inputs[id]=this.createInputElement(id,t,l);
输入[id]。onchange=function(){
changeFunc()(草图,id,this.value);
返回false;
}
}
返回输入[id];
}
this.addRange=函数(l、c、mi、mx){
var输入=此.addInputField(l,“范围”);
input.value=c;
input.min=mi;
input.max=mx;
返回输入;
}
this.addPassword=函数(l){
var输入=this.addInputField(l,“密码”);
返回输入;
}
this.addEmail=函数(l){
var输入=this.addInputField(l,“电子邮件”);
返回输入;
}
this.addSearch=函数(l,c){
var输入=this.addInputField(l,“搜索”);
input.value=c;
返回输入;
}
this.addNumber=函数(l,c){
var输入=this.addInputField(l,“数字”);
input.value=c;
返回输入;
}
this.addTelephone=功能(l,c){
var输入=this.addInputField(l,“tel”);
input.value=c;
返回输入;
}
this.addUrl=函数(l,c){
var输入=this.addInputField(l,“url”);
input.value=c;
返回输入;
}
this.addDate=函数(l,c){
var输入=this.addInputField(l,“日期”);
input.value=c;
返回输入;
}
this.addCheckbox=函数(l,c){
变量id=createIdFromLabel(l);
if(输入[id]==未定义){
inputs[id]=this.createInputElement(id,“checkbox”,l);
输入[id]。onchange=function(){
changeFunc()(草图,id,this.checked);
返回false;
}
}
输入[id]。选中=c?“选中”:“”;
返回输入[id];
}
this.addTextfield=函数(l,c){
变量id=createIdFromLabel(l);
if(输入[id]==未定义){
inputs[id]=this.createInputElement(id,“text”,l);
输入[id]。onchange=function(){
changeFunc()(草图,id,this.value);
返回false;
}
}
输入[id]。值=c;
返回输入[id];
}
this.addTextarea=函数(l,c){
变量id=createIdFromLabel(l);
if(输入[id]==未定义){
var label=document.createElement('label');
标签['for']=id;
label.id=id+'-label';
label.innerHTML=l;
表格.附件(标签);
输入[id]=document.createElement('textarea');
输入[id].id=id;
输入[id]。名称=id;
输入[id].innerHTML=c;
输入[id]。onchange=function(){
changeFunc()(草图,id,this.value);
返回false;
}
表单.appendChild(输入[id]);
}
输入[id]。值=c;
返回输入[id];
}
this.addSelection=函数(l,o){
变量id=createIdFromLabel(l);
if(输入[id]==未定义){
var label=document.createElement('label');
标签['for']=id;
label.id=id+'-label';
label.innerHTML=l;
表格.附件(标签);
var select=document.createElement('select');
选择.id=id;
select.name=id;
如果(o!==未定义的&o.length&&o.length>0){
对于(变量i=0;i1?o[i][1]:i;
var controllerFactory = function() {
function Controller() {
//Code code code
}
return Controller;
};
var Controller = controllerFactory();
!function(params...) {
//code code code
}(args...);
!function($, undefined) {
}(window.jQuery);