对所有对象都有__proto__这句话有疑惑
var a = {},这个a有__proto__属性,
如果是这样创建对象:
var b = Object.create(null)
b是没有__proto__这个属性的,但b是对象!
想问下有人知道为什么吗!
最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)第二篇已更新,点击进入第三篇已更新,点击进入 三篇文章都更新完毕,完整的剖析了 JS 原型与原型链,希望通过这些教程能让你对 Javascript 这门语言理解的更透彻! 一...
关于第二大点,
“这两个实例都有一个 constructor (构造函数)属性,该属性(是一个指针)指向 Person“
“ console.log(person1.constructor == Person);//true“
“console.log(person2.constructor == Person); //true”
我觉得这里的说法有点出入
如果直接打印person1和person2对象,就会发现并没有发现有constructor属性。打印内容如下
{age:28
job:"Software Engineer"
name:"Zaxlct"
sayName:ƒ ()
__proto__:Object}
那为什么person1.constructor == Person 这个会是true,实际是因为在person1中没有找到constructor属性,顺着__proto__往上,找到了Person.prototype,而在这里才找到的constructor,而这个constructor是指向Person的,所以结果才会是true
但是这并不能说是实例上有一个constructor属性,我觉得这容易产生误解。
以上是个人观点,有错误请指正,谢谢。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机...
《Java从小白到大牛》纸质版已经上架了!!! Java诞生到现在已经有20多年了,但是Java仍然是非常热门的编程语言之一,很多平台中使用Java开发。表1-1所示的是TI...