什么是log:function(){}在javascript中?

时间:2017-08-15 01:42:38

标签: javascript

我在测验中看到了这段代码,我对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">

6 个答案:

答案 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()