前端面试题:企业面试真题—2
2020-08-18 13:37
731 查看
关注他
[code]function person(pname, page) { this.name = pname; this.age = page; } person.prototype.profession = "football player"; var p1 = new person("Messi", 29); var p2 = new person("Bale", 28); console.log(p1.hasOwnProperty("name")); // true console.log(p1.hasOwnProperty("hasOwnProperty")); //false console.log(p1.__proto__ === person.prototype); //true console.log(person.prototype.hasOwnProperty("hasOwnProperty")); //false console.log(p1.__proto__.__proto__ === person.prototype.__proto__); //true console.log(person.prototype.__proto__.hasOwnProperty("hasOwnProperty")); //true
解析:
[code]function person(pname, page) { this.name = pname; this.age = page; } person.prototype.profession = "football player"; var p1 = new person("Messi", 29); var p2 = new person("Bale", 28); //直接打印p1对象可知, p1包含自有属性name console.log(p1.hasOwnProperty("name")); // true //同理,p1不包含函数hasOwnProperty, 改函数从原型链继承而来 console.log(p1.hasOwnProperty("hasOwnProperty")); //false //两种方式都可以原型对象, 因此为true console.log(p1.__proto__ === person.prototype); //true //直接打印person.prototype可知, 原型对象不包含函数hasOwnProperty, 该函数从原型链继承而来 console.log(person.prototype.hasOwnProperty("hasOwnProperty")); //false //等价写法而已, 也可以等同于Object.prototype console.log(p1.__proto__.__proto__ === person.prototype.__proto__); //true //person的原型是Object实例, 再往上就是Object原型, hasOwnProperty函数就保存在此对象上 console.log(person.prototype.__proto__.hasOwnProperty("hasOwnProperty")); //true
用一张图理清关系
相关文章推荐
- 前端面试题:企业面试真题—1
- NET面试题大全,包括微软、华为、中兴等大企业的面试真题(连载)
- 大数据开发面试题-企业面试真题【连载】
- .NET面试题大全,包括微软、华为、中兴等大企业的面试真题
- 前端面试整理<特别多,耐心看基础面试题部分基本没有问题了!!!>
- 各大企业【Web前端开发面试题总结】(附答案)
- 2019年底前的web前端面试题初级-web标准应付HR大多面试问题
- 前端面试:精选经典面试题(四十二)
- 前端面试:精选经典面试题(二十二)
- 前端面试:精选经典面试题(三十五)
- 大数据真实企业的面试题《十》--spark面试笔试题
- 【转发】亲历腾讯WEB前端开发三轮面试经历及面试题
- CSS前端面试集锦,找这些面试题,也是为了查漏补缺,加强一下基础
- 阿里巴巴前端面试parseInt()函数的面试题
- 前端面试:精选经典面试题(五十五)
- 前端面试:精选经典面试题(五)
- 前端面试:精选经典面试题(五十)
- 前端面试:精选经典面试题(八)
- 前端面试--四月二十家前端面试题分享
- 面试互联网企业Android开发工程师的一些面试题