码迷,mamicode.com
首页 > Web开发 > 详细

js中的对象 函数 原型

时间:2018-10-21 10:14:44      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:str   cto   fun   创建   log   一个   函数   xtend   prot   

// 关于 Function Object 和 proto prototype
// 1.每一个对象实例都有一个 proto 属性,这个属性就是指向 对象构造函数的原型.
let b = new Function();
console.log(b.__proto__ === Function.prototype); // true
console.log(Function.prototype); // [Function]
console.log(Function.prototype.prototype); // undefined

// 2. Function 是 Object, Object 也是 Function
console.log(Function instanceof Object); // true
console.log(Object instanceof Function); // true
console.log(b instanceof Object); // true
console.log(b instanceof Function); // true

// Function 和 Object 区别
// 1.由 Function 创造出来的实例对象,既是 Object 又是 Function
// 2.由 Object 创造出来的实例对象, 是 Object,但不是 Function
let a = new Object();
console.log(a instanceof Object); // true
console.log(a instanceof Function); // false

//
console.log(a.__proto__ === Object.prototype); // true
console.log(Object.prototype); // {}
console.log(Object.prototype.prototype); // undefined

// 如何形成原型链?
class A{
constructor(){
this.name = ‘a‘;
}
sayHi(){
console.log(‘this is a say hi!‘);
}
}
class B extends A{
constructor(){
super();
this.age = 2;
}
}

console.log(A.prototype); // {}
console.log(B.prototype); // {}

// 下面演示了 原型链
// B->A->Object
let obj = new B();
console.log(obj.__proto__ === B.prototype); // true;
console.log(B.prototype.__proto__ === A.prototype); // true
console.log(A.prototype.__proto__ === Object.prototype);
console.log(Object.prototype.__proto__); // null

console.log(A.__proto__ === Function.prototype); // true
console.log(B.__proto__ === Function.prototype); // false
console.log(B.__proto__.constructor); // [Function: Function]

// 只有 通过 new A(); 创建的对象的 proto 才指向 A.prototype

// 疑问: B.__proto__ 到底指向哪?
console.log(B.__proto__ === A.prototype); // false

js中的对象 函数 原型

标签:str   cto   fun   创建   log   一个   函数   xtend   prot   

原文地址:https://www.cnblogs.com/daihanlong/p/9823945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!