我正在查看jQuery插件源以查看它是如何工作的,以及定义插件设置的方式对我来说是新的。有人可以解释它是如何工作的吗?
$.fn.thePluginFunc = function(settings) {
settings = settings || {}; // Why is it using an OR?
var g = settings.g || -3; // How/why are the values access this way?
var dt = settings.dt || 20;
var bounce = settings.bounce || 0.7;
var endVelocity = settings.endVelocity || 20;
var stagger = settings.stagger || 200;
var relativeToDocument = settings.relativeToDocument || false;
var clear = settings.clear || false;
var fallToLeft = settings.fallToLeft || false;
答案 0 :(得分:1)
这是检查对象是否存在的一种方法。如果对象不存在,则设置默认值
在上面的示例中,settings
是thePluginFunc
用作参数的对象,如果setting
对象存在,如果它不在这种情况下它需要{}
。
与以下代码相同
if(settings){
settings = settings; // if the object is there
}
else{
settings = {}; // set if the object is not
}
或使用
settings = settings || {};
以上两个代码段相同。
答案 1 :(得分:0)
如果将设置对象传递给thePluginFunc函数,则函数内的变量将使用您的设置进行初始化,否则如果您没有将任何对象传递给函数,则变量将使用默认值初始化,如-3,20,0.7 ecc。
例如在第一个var中,如果settings.g ve将使用外部设置值初始化值g,否则使用-3。
使用此方法可以使用不完整的对象:
settings = {g: "abc", dt: "def"};
然后结果:
var g = "abc";
var dt = "def";
var bounce = 0.7;
var endVelocity = 20;
var stagger = 200;
var relativeToDocument = false;
var clear = false;
var fallToLeft = false;
答案 2 :(得分:0)
在JavaScript中,||
运算符用于OR
表达式。如果第一个操作数具有false
值,则遵循此行为[即。 ''(空字符串),undefined
],它将返回第二个操作数值。
settings = settings || {}; // Why is it using an OR?
如果您还没有传递任何选项,那么上面的语句将分配空对象。
与其他变量相同。
希望它会给你清晰的想法。