当试图在C#中做一些相当先进的事情时(比如某种黑客),提出了"头等"的概念.
例如,一个方法是第一类编程构造,因为你可以用它做xyz(xyz不是方法所做的,但是一般的方法给你什么,我不记得xyz现在是什么),但是. NET 1.1委托无法传递给方法,因为它们不是一流的编程结构(我读过这些内容).
什么是一流的编程结构?
谢谢
在以下代码中
const express = require('express');
const app = express()
app.use(express.static('public'));
Run Code Online (Sandbox Code Playgroud)
express是一个函数,所以它如何调用"express.static('public')"方法呢?是否可以在JavaScript中调用函数内部的函数
我们如何重命名jquery函数.假设我想重命名Jquery UI函数draggble()
,xdraggble()
以便它不会与从另一个库加载的另一个可拖动函数冲突.重命名是否会影响性能.
我知道Javascript中的对象是通过引用复制/传递的.但功能怎么样?
当我跳到令人困惑的东西时,我正在尝试这段代码.这是代码片段:
x = function() { console.log('hey 1'); }
y = x;
x = function() { console.log('hey 2'); }
y; // Prints function() { console.log('hey 1'); }
Run Code Online (Sandbox Code Playgroud)
如果通过引用复制/传递像对象这样的函数,为什么y不会更新以打印'hey 2'?
如果这种行为是因为'x'被赋予了一个全新的函数,当x改变时,有没有办法将变量'y'变换为新分配的函数?
考虑下面的一段代码。
导出的类型是function。但我们仍然可以拥有exports.hello
财产。这怎么可能??
const obj = {
exports: {}
}
obj.exports = () => {
console.log('invoked')
}
obj.exports.hello = () => {
console.log('hello() invoked')
}
var output = `type of obj => ${typeof obj} ####
type of obj.exports => ${typeof obj.exports} ####
obj.exporst.hello() is ${typeof obj.exports.hello}
`;
console.log(output);
Run Code Online (Sandbox Code Playgroud)
输出是:
type of obj => object #### type of obj.exports => function #### obj.exporst.hello() is function
Run Code Online (Sandbox Code Playgroud)
拥有一个exports
对象 ( typeof 'object'
) 并拥有诸如exports.hello
,exports.foo
等函数是合乎逻辑的。但是我们如何将自己导出为函数,然后拥有导出的属性呢?
我无法使用d3的符号机制为每组数据指定唯一的符号.数据如下:[[{x:1,y:1},{x:2,y:2},{x:3,y:3}],[{x:1,y:1},{ x:2,y:4},{x:3,y:9}]等]
写出符号的代码部分如下所示:我为每个点向量创建一个系列组.然后:
series.selectAll("g.points")
//this selects all <g> elements with class points (there aren't any yet)
.data(Object) //drill down into the nested Data
.enter()
.append("g") //create groups then move them to the data location
.attr("transform", function(d, i) {
return "translate(" + xScale(d.x) + "," + yScale(d.y) + ")";
})
.append("path")
.attr("d", function(d,i,j){
return (d3.svg.symbol().type(d3.svg.symbolTypes[j]));
}
);
Run Code Online (Sandbox Code Playgroud)
或者至少我喜欢它的工作方式.麻烦的是我无法从其他函数返回函数d3.svg.symbol().如果我尝试将函数放在"type"参数中,那么数据将不再正确地限定以了解j是什么(系列的索引).
是的,但我不希望每个数据点都有一个唯一的符号,我希望每个系列都有一个独特的符号.数据由多个数组(系列)组成,每个数组可以有任意数量的点(x,y).我想为每个数组添加一个不同的符号,这就是j应该给我的东西.我将数据(在示例中,显示的两个数组,因此i为0然后为1)与系列选择相关联.然后我将数据Object与点选择相关联,因此我成为每个数组中点的索引,j成为原始数组/数据系列的索引.我实际上从其他地方复制了这个语法,并且它适用于其他实例(例如,在分组条形图中着色系列的颜色),但我无法确切地告诉你它为什么有效...
任何指导将不胜感激.谢谢!
我正在深入(或尝试)高级 javascript 主题,如原型、构造函数、函数属性等,一些事实使我得出结论,javascript 函数也是对象。
我知道函数的数据类型是function
,因为:
> typeof function(){}
'function'
Run Code Online (Sandbox Code Playgroud)
但不管怎么说:
length
属性Function.prototype
的原型是Object.prototype
(原型链):
> Object.getPrototypeOf(Function.prototype) === Object.prototype
true
Run Code Online (Sandbox Code Playgroud)有人能说清楚javascript函数是否是对象吗?如果是这样,为什么是typeof function == 'function'
和typeof [] == 'object'
;如果没有-我上面提到的几点怎么样?
编辑:还有一个问题 - 什么是第一类对象?
在尝试同时掌握jQuery和JavaScript的一些基础知识时,我有点困惑为什么jQuery将匿名函数作为参数.像这样:
$( "#target" ).click(function() {
alert( "Handler for .click() called." );
});
Run Code Online (Sandbox Code Playgroud)
与此相反:
$( "#target" ).click(alert("You clicked it."));
Run Code Online (Sandbox Code Playgroud)
在jQuery自己的"101"指南中,他们指出"将函数作为参数传递是jQuery中非常常见的习惯用法".但他们似乎没有解释原因.它只是为一组表达式提供一个包装器,或者(我怀疑)远不止于此?
我想从字典中调用函数。可能吗?如果是这样,我将如何去做呢?
def function():
pass
my_dic = {
'hello': function()
}
Run Code Online (Sandbox Code Playgroud) javascript ×5
function ×2
jquery ×2
.net ×1
d3.js ×1
dictionary ×1
express ×1
node.js ×1
object ×1
prototype ×1
python ×1
python-3.x ×1
rename ×1