【发布时间】:2018-05-08 23:43:41
【问题描述】:
谁能解释一下是什么表达方式
方法[选项]
在此代码中进行评估?
$.fn[插件名] = 函数(选项){
if (typeof options === 'string' **&& methods[options])** {
alert("Mirko in");
var inited = TRUE;
this.each(function() {
if (!$(this).data(pluginname)) {
return inited = FALSE;
}
});
这个表达式什么时候是真的?我认为在 javascript 中你没有关联数组。
有关信息: - 方法只是一个对象类型(--> var methods = {method1: function()..., method2: function ()...} - options 也是一个对象,用来自定义插件。
谢谢
【问题讨论】:
-
methods[options]将评估为true,当methods对象包含一个属性名称为options中的任何值时。例如,如果methods = { 'foo': .... },则methods['foo'] == true,但methods['bar'] === false -
当参数 options 具有字符串类型并且 methods 对象具有 options 作为键时为真。如果 options 不是键,则表达式的值为 undefined,因此整个表达式为 false。
-
感谢您的澄清!
标签: javascript jquery plugins