为了账号安全,请及时绑定邮箱和手机立即绑定

$.fn[namespace].defaults是什么意思

$.fn[namespace].defaults是什么意思

阳光多灿烂l 2018-05-10 22:04:05
(function($) {    var namespace = 'colorful';    var methods = {        init: function(options) {            options = $.extend({}, $.fn[namespace].defaults, options);            if (options.font) {                this.css('color', options.color);            }            if (options.background) {                this.css('background-color', options.color);            }            return this;        }    };    $.fn[namespace] = function(method) {        if (methods[method]) {            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));        } else if ($.type(method) === 'object') {            return methods.init.apply(this, arguments);        } else {            $.error('Method' + method + ' does not exist!');        }    };    $.fn[namespace].defaults = {        color: 'red',        background: false,        font: true    };})(jQuery);$.fn[namespace].defaults是声明默认配置项,这个为什么$.fn[namespace]这样写,$.fn.namespace跟这样写一样吗,后面的defaults是什么意思,api文档好像没有这个方法吧
查看完整描述

3 回答

?
守护宣言

TA贡献2条经验 获得超0个赞

我们把$.fn[namespace]换成obj,然后展开来看,就是这个结构

obj = {

    defaults: {

        color: 'red',

        background: false,

        font: true

    }

}

至于$.fn,属于JQuery底层的一些东西了,推荐这篇博文,讲得很清楚。

查看完整回答
反对 回复 2018-05-28
?
minip

TA贡献10条经验 获得超0个赞

对象属性访问有两种方式:

    const obj = {
        a: 123
    }

  1. 通过点
    obj.a === 123 // true

  2. 动过[]
    obj['a'] === 123 // true

通过 [keyName] 这种形式访问 变量 keyName 的值 类型应该是 String 类型,如果keyName的 值是数字类型 会被强行转成String

查看完整回答
反对 回复 2018-05-11
  • 阳光多灿烂l
    阳光多灿烂l
    好吧,前端小白的课程里没有讲对象,我看了文档只知道基本的声明对象和获取对象的值
?
cxxyjsj

TA贡献119条经验 获得超22个赞

你把$.fn看做一个object对象, 例子中namespace = 'colorful';  那么$.fn[namespace] === $.fn['colorful'] === $.fn.colorful;   而$.fn.namespace === $.fn['namespace'] , 这两者是不一样的。

查看完整回答
反对 回复 2018-05-11
  • 3 回答
  • 0 关注
  • 2447 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信