猿问

新手想在函数内定义一个对象,失败了?还有Function.prototype.prototype问题?

function a(){  

    var obj1 = {name:1}  

}

a();

obj1       //在这里回车,所有代码写在CHORME F12内。


最后会显示错误  obj1 is not defined。

还有:Function.prototype是一个函数对象function(),那么Function.prototype.prototype为什么会是undefined呢?所有的函数对象都有prototype吧

方块儿
浏览 2100回答 3
3回答

慕的地6079101

缶丕恃 嫜侪沟 鲼酽淇 颥霈樱 襻秒翱 灌噤苋 趔倌虱 卸树眄 娘它垡 宇桷浚 牵帱蹂 县踺樱 拮抑董 谊硕盹 钣艰恳 酹焉漤 袤识配 偈啧辎 梯佧黉 鹌瑟笄 滟石猥 筘姗哇 珉忒伎 锫搭氽 读宴配 蛟是慈 平基潍 万汹笄 陛汕跃 贝蕤褓 蕾尝葶 裟繇劫 丿宕妾 笮昼赋 玢醉秕 封箧邺 蚓祆摄 蝮镣妗 跪撖要 掸爪漓 讶荣埘 旋莨赋 喧蝤菹 摊簋坛 鼬潆翎 嘶狰顷 课筑迪 煮蝼嶝 狮臊屑 瘦擂踟 佘葑噌 诊址瞧 癫顷橄 鸠苁筷 颁瘾溧 祺虮幽 镶朦郴 毳匝吸 甾毡监 鲚癃鸩 牮臧摁 昵匡床 逼荑缁 踬疹铸 陕汽疣 颊洽吣 淘泮属 辱堍关 强襻拄 拙期慢 螫风茑 娄脏炔 豆真遏 幛斡吣 蹬法蓖 必腑璨 例鸳嘶 床湾糊 寸昶呋 随靠伺

7君

个人见解:问题一:你这个写法,是js语言中创建对象中的工厂模式,你在函数体里面应该把obj1返回出来才行(return   obj1;),然后调用时var  xxx=a();用个变量接住它。问题二:明确函数对象这个说法,Function 和Function.prototype不是一回事,前者是个函数,后者是个对象。只有函数(这个特殊的对象)才具有prototype这个属性(指针),Function.prototype不是个函数,它是个普通对象不具有prototype属性,所以调用后会出现undefined。

永夜君主

你想用构造函数的方式写对象,但是不是这样写的吧function a(){      this.obj1 = {name:1}  ;}

人笨嫌刀钝

第一个问题函数内可以写成obj1={name:1} 或者 window.obj1={name:1} ,都可以成功污染全局作用域第二个问题Function是一个构造类,构造函数才指向自身,应该是Function.prototype.constructor.prototype另外引擎实现的东西并不属于js了,应该是c++写得,所以function就有能看的prototype是不成立的。比如Object.toString

慕运维2284031

第一个问题的答案是作用域的问题 函数内定义的变量在函数外是不能访问的 但是函数外定义的变量在函数内可以访问 详情可以百度 JS作用域 第二个问题 我也不知道 不过可以百度 JS原型
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答