我正在查看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的首发。所以,如果我能得到一些明确的澄清,那将是非常有帮助的。
答案 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
}
}
}