我在测验中看到了这段代码,我对javascript很新。虽然我知道这个函数是如何工作的,但仍然可以有人向我解释代码的第3行。 这个日志:function(){}的意思是:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jplayer/2.9.2/skin/pink.flag/css/jplayer.pink.flag.min.css">
答案 0 :(得分:2)
它是一个对象属性,其值是一个函数。如果你这样做:
var x = abc();
然后你可以这样做:
x.log()
调用该函数。这是一个完整的例子:
var abc = function() {
return {
log : function() {
console.log(this.val);
}
};
}
var x = abc();
x.val = "This is the value";
var y = abc();
y.val = "This is y's value";
x.log();
y.log();
答案 1 :(得分:0)
这会将对象返回为{log: function()}
。它是一个普通的JS对象,看起来像{key:value}
。在此处阅读有关JS对象的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
我假设问题是关于this
解决的问题。你可以在这里阅读:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/this。更好的是,我可以向你推荐Kyle Simpson的this & Object prototypes本书来自你不知道JS &#39;系列。
答案 2 :(得分:0)
它是对象的key
,其value
是一个函数。
答案 3 :(得分:0)
log ,因为外部函数返回的对象的唯一字段(分配给变量 abc )被初始化为它旁边的函数体。
答案 4 :(得分:0)
为了更好地帮助您理解它,我将构造使用伪代码
给出的代码OBJECT abc IS A FUNCTION THAT DOES
RETURN ANONYMOUS OBJECT
LOG TO CONSOLE this.val
让我们来看看你最熟悉的函数声明。
function myFunction() {
//do stuff
}
在给出的示例中,您将看到匿名函数。在上面的示例中,函数使用名称myFunction
声明。但是使用匿名函数时,在声明时不必给出任何名称。所以在基础上,函数没有名称,使其匿名。
函数的要点是避免重复代码。因此,给函数命名可以让你从任何地方调用它们。使用匿名函数时,除非将它们分配给变量,否则无法调用它们。
通常在对代码进行分组时使用匿名函数。代码组是用于event listener
还是用于其他事情。
您可以详细了解匿名函数here。
此示例中还有匿名对象。您可能熟悉给出对象名称。但是return
返回的是一个匿名对象。在匿名对象中是我们要看的内容。
对象结构与此类似:
objectName
key1: value1
key2: value2
因此,在这种情况下,return
返回的匿名对象有一个名为log
的密钥。此密钥的值是一个将this.val
记录到控制台的匿名函数。
您可以详细了解对象here。
快乐编码,
法鲁克
答案 5 :(得分:0)
abc()
返回一个普通对象,可以在该对象上设置属性和值。在对象this
的函数内将引用对象实例。我们可以将.val
的{{1}}设置为值,然后调用this
对象abc()
方法
.log()
var abc = function() {
return {
log : function() {
console.log(this.val);
}
};
}
var def = abc();
def.val = 123;
def.log();
也可以通过定义默认参数
this.val
调用时设置值
abc()