您当前的位置: 首页 > 

彭世瑜

暂无认证

  • 2浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JS中的prototype、__proto__与constructor

彭世瑜 发布时间:2020-04-22 00:38:03 ,浏览量:2

在这里插入图片描述

简单实例

// 定义一个函数
function Foo(name) {
    this.name = name
}

// 调用函数 这个函数返回 undefined
var foo = Foo('Tom')
console.log(foo); // undefined


// 调用构造方法
console.log(Foo); // [Function: Foo]
console.log(Foo.__proto__); // [Function]
console.log(Foo.constructor); // [Function: Function]

console.log(Foo.prototype); // Foo {}
console.log(Foo.prototype.__proto__); // {}
console.log(Foo.prototype.constructor); // [Function: Foo]

console.log(Foo.prototype.constructor === Foo); // true

// 相当于 Foo.prototype.constructor('Tom') 返回this
foo = new Foo('Tom')
console.log(foo); // Foo { name: 'Tom' }
console.log(foo.__proto__); // Foo {}
console.log(foo.prototype); // undefined
console.log(foo.constructor); // [Function: Foo]


var foo1 = new Foo.prototype.constructor('Tom')
console.log(foo1); // Foo { name: 'Tom' }

var foo2 = new Foo('Tom')
console.log(foo2); // Foo { name: 'Tom' }

console.log(foo1 == foo2); // false

console.log(foo1.__proto__); // Foo {}
console.log(foo1.prototype); // undefined
console.log(foo1.constructor); // [Function: Foo]

console.log(foo2.__proto__); // Foo {}
console.log(foo2.prototype); // undefined
console.log(foo2.constructor); // [Function: Foo]

总结 属性归属作用指向顶端__proto__对象所独有对象属性的查找路径对象->对象原型链顶端nullconstructor对象所独有构造函数对象->函数Functionprototype函数所独有所有实例共享的属性和方法函数->对象-

图片来源和文章参考 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.1744s