var name = {sex: '男'};
console.log($.type(name)); // string
console.log($.type({sex: '男'})); // object
console.log(typeof name); // string
疑惑吗?自己动手试一下,这是为什么呢?
第四行代码可以证实这不是 jQuery 插件的问题,造成这一问题的原因是 window 对象。
window 对象有一个 name 属性, 而且这个 name 属性是可以设置的,但是!!!
window.name
is always casted to a string. Avoid writing code in a global context to avoid it.
HTML5 中 对于window.name 的定义:
The
name
attribute of theWindow
object must, on getting, return the current name of the browsing context
如果将 name 手动修改为一个对象,
则在调用的地方,name='[object Object]'。
所以,避免在全局上下文中 查看 name 的类型,因为它总是返回 string。