What type of object is a Javascript prototype?(Java脚本原型是什么类型的对象?)
本文介绍了Java脚本原型是什么类型的对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
function Person(name) {
this.name = name;
}
var rob = new Person('Rob');
- Person是一个函数。
- Person是对象。
- 人不是人。
- Rob是对象。
- Rob的原型(
__proto__
)是Person.Prototype,所以Rob是一个人。
但是
console.log(Person.prototype);
输出
Person {}
Person.Prototype是对象吗?阵列?一个人?
如果它是对象,该原型是否也有原型?
更新我从这个问题中学到的东西(2014年1月24日星期五上午11:38:26)
function Person(name) {
this.name = name;
}
var rob = new Person('Rob');
// Person.prototype references the object that will be the actual prototype (x.__proto__)
// for any object created using "x = new Person()". The same goes for Object. This is what
// Person and Object's prototype looks like.
console.log(Person.prototype); // Person {}
console.log(Object.prototype); // Object {}
console.log(rob.__proto__); // Person {}
console.log(rob.__proto__.__proto__); // Object {}
console.log(typeof rob); // object
console.log(rob instanceof Person); // true, because rob.__proto__ == Person.prototype
console.log(rob instanceof Object); // true, because rob.__proto__.__proto__ == Object.prototype
console.log(typeof rob.__proto__); // object
console.log(rob.__proto__ instanceof Person); // false
console.log(rob.__proto__ instanceof Object); // true, because rob.__proto__.__proto__ == Object.prototype
- 原型只是普通对象。
- typeof对于确定某个对象是对象还是基元(以及它是什么类型的基元)很有用,但对于确定它是什么类型的对象无用。
- LHS instanceof RHS如果RHS出现在原型链中的某个位置,则返回True。
推荐答案
Person.Prototype是对象吗?
是的。一切都是对象:-)有关详细信息,请参阅How is almost everything in Javascript an object?。
数组?
不,绝对不是。
一个人?
视情况而定。大多数人会说这不是Person
的一个例子--这是所有人的本质(他们的原型:-)。但是,console.log
似乎是这样标识它的,因为它有一个指向Person
构造函数的.constructor
属性。
如果它是对象,该原型是否也有原型?
是的。每个物体都有一个原型。它们构建了所谓的原型链,其末端是一个null
引用。在您的特定示例中,它是
rob
|
v
Person.prototype
|
v
Object.prototype
|
v
null
这篇关于Java脚本原型是什么类型的对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Java脚本原型是什么类型的对象?
基础教程推荐
猜你喜欢
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 动态更新多个选择框 2022-01-01