Javascript:如何访问对象中的对象

Vin*_*ent 2 javascript-objects jquery-ui-datepicker

我正在使用一个语言文件来存储jquery datepicker URL的traductions:http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/i18n/jquery-ui-i18n.min.js ver = 3.4.2

返回jQuery.datepicker.regional对象,我想访问该对象的it(意大利语)属性.我的问题是,当我做类似的事情

console.log(jQuery.datepicker.regional['it'])
Run Code Online (Sandbox Code Playgroud)

要么

console.log(jQuery.datepicker.regional.it)
Run Code Online (Sandbox Code Playgroud)

控制台说对象未定义.

但当我做类似的事情时:

    console.log(jQuery.datepicker.regional);
Run Code Online (Sandbox Code Playgroud)

控制台返回如下内容:

[Object]
    : Object
    af: Object
    ar: Object
    ...
    it: Object
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?"it"对象有没有呢?如何访问jQuery.datepicker.regional对象的"it"对象?

谢谢

小智 5

jQuery.datepicker.regional 在DOM准备就绪时,每个翻译对象都会更新:

JQuery(function($){ 
    $.datepicker.regional['it'] = {
        // …
    }
})
Run Code Online (Sandbox Code Playgroud)

尝试类似地访问它:

$(function() {
    console.log(jQuery.datepicker.regional.it)
})
Run Code Online (Sandbox Code Playgroud)

除此之外 console.log

console.log仅仅区域对象显示所有本地化对象,因为console.log(有时console.dir)打印对象的引用,其属性可能在您在控制台中实际查看它们时已更改.肯定有一些浏览器的特性.

例如,在Chrome 25.0.1337.0中:

var foo = {};
console.dir(foo) // Object: { baz: "bip" }

console.log(foo) // Object: {}
console.log(foo.baz); // undefined

foo.baz = "bip";


var bar = {};
console.dir(bar) // Object: { baz : { foo: 10 }}

bar.prototype = new Array;
console.log(bar) // Object: { baz : { foo: 10 }}
console.log(bar.baz); // undefined

bar.baz = { foo: 10 };
Run Code Online (Sandbox Code Playgroud)

在Firefox 17.0 + Firebug 1.9.2中:

var foo = {};
console.dir(foo) // Object: { }

console.log(foo) // Object: { baz: "bip" }
console.log(foo.baz); // undefined

foo.baz = "bip";


var bar = {};
console.dir(bar) // Object: {}

bar.prototype = new Array;
console.log(bar) // Object: { baz : { foo: 10 }}
console.log(bar.baz); // undefined

bar.baz = { foo: 10 };
Run Code Online (Sandbox Code Playgroud)