澄清Javascript函数

时间:2017-01-27 10:49:08

标签: javascript

我正在查看Chrome扩展程序javascript代码,我遇到了以下不明白的行。

SELECT * FROM posts
WHERE MATCH (title, body)
AGAINST ('foo' IN NATURAL LANGUAGE MODE);

1.我看到一个名为“wall”的函数,我可以看到文件名也是wall.js.那么,这是一个任何机会的构造函数。或者它是一个功能?

2.我还看到他们正在检查网站登录覆盖的代码(在本例中为twitter)。我想了解“loginOverrides”是什么意思?它是javascript中的关键字吗?为什么twitter网址在网址中间带有“^”和“?”的代码中可用的方式?动作功能有什么作用?

我是javascript的首发。所以,如果我能得到一些明确的澄清,那将是非常有帮助的。

2 个答案:

答案 0 :(得分:1)

Viman。如果你发布一个完整的js文件(或jsfiddle)会很酷,但据我所知,有两个变量:

  • 更改

这些变量以逗号表示法列出,如:

var a = 1,
    b = 2,
    c = 3;

与此相同:

var a = 1;
var b = 2;
var c = 3;

变量"变更"是一个功能。如果你不明白它为什么

var change = function(b,a){}

而不是

function change(b,a){}

读取函数声明与函数表达式。

下一个是变量" wall"。它是一个对象,它包含一个名为" loginOverrides"的属性,它有另一个对象作为值。这个"对象作为价值"有财产:" ^(www \。)?twitter \ .com",它还有另一个对象作为价值。这个"又一个对象作为价值"具有属性" action",这是其对象的方法。详细解释时听起来很复杂。

在此代码中快速指导后,回答您的问题:

问:我想了解" loginOverrides"意思?

答:这是" wall"的财产名称。宾语。可以随意调用属性,不包括JS本身使用的一些单词。

问:它是javascript中的关键字吗?

答:没有

问:为什么Twitter网址的图案方式与代码中的" ^"和" ? "在网址的中间?

答:似乎在代码中它将被用作正则表达式。 ^用于匹配正则表达式的开始,并且?用于获取0或1个chekced实例。如果你没有得到我说的话,请在这里快速查看:http://regexr.com/

问:动作功能有什么作用?

答:不能说,因为你只留下了身体内的点。如前所述,它是一种对象的方法。

希望,这有帮助。

答案 1 :(得分:1)

更改是一个函数,而不是构造函数。你可以用

来调用它
change(value1, value2);

Wall是一个对象,loginOverrides不是javascript关键字,而是该对象中的对象。两者都有一个键和一个这样的值:

var obj = { foo: "bar", baz: 42 };

见这里:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Object/values

与写作相同

var newObject = {
    key1 : { // This whole part is the value of key1 and an object itself
        key2: function() {
            // Do stuff
       }
    }
}