试着在你的浏览器上运行这段儿代码, 是不是很惊奇?
var name = [1,2,3,4];
console.log(Array.isArray(name)); //false
console.log(typeof name); //string
而只需要换一换变量名
var name1 = [1,2,3,4];
console.log(Array.isArray(name1)); //true
console.log(typeof name1); //object
是不是好奇异!!!!?
在 console 里的 var 是写到 window 上的。
var name = [1,2,3,4];
相当于window.name = [1,2,3,4];
而 window 的 name 属性应该是用
Object.defineProperty
设定了 get set 函数的。你可以通过
Object.defineProperty(window,"name",{get:()=>[1,2,3,4]})
来设置 name