标签:__ .__ proto Number js 一道 toString 原型 prototype
console.log(Number.toString.length);
console.log(Number.__proto__.toString.length);
console.log(Number.prototype.toString.length);
console.log(new Number().toString.length);
console.log(Number.prototype.__proto__.toString === String.prototype.__proto__.toString);
答案分别是: 0 0 1 1 true;
解题思路:
解题前须知: function.toString方法返回的是函数的形参个数,具体介绍请参考: MDN
1:
Number构造函数本身没有toString方法,Number构造函数的__proto__指向Function.prototype; 它的toString方法继承于Function.prototype; 结果为0
2:
如1中描述, Number.__proto__指向Function.prototype; 结果同样为0 ;
3&4:
4中的 new Number( )指构造函数的实例对象, 根据原型链可知, new Number( ).__proto__ === Number.prototype; 由于number中的toString方法会有一个隐藏参数10,(代表十进制),所以结果为 1;
5: 结果为true,他们都指向Object.prototype (根据原型链查找), 同理 Number.__proto__=== String.__proto__=== Function.prototype; (因为Function是所有函数的爸爸,Object是所有对象的爸爸)
标签:__,.__,proto,Number,js,一道,toString,原型,prototype 来源: https://blog.csdn.net/Jingwen_molo/article/details/121480148
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。