當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript原型对象、原型链、构造函数
生活随笔
收集整理的這篇文章主要介紹了
javascript原型对象、原型链、构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、原型對象(原型)、原型鏈
先放一張在網上看到的關于原型和原型鏈的圖,非常不錯。
如果你能看懂,那就對原型鏈有了一定了解,如果看不懂,對照下面這幾點來看圖:
深入了解instanceof :?JavaScript instanceof 運算符深入剖析
?和2對比,可以看出。
Object.create方法
內部原理:
if(typeof Object.beget !== 'function') {Object.create = function(o) {var F = function () {};F.prototype = o;return new F();}}?
這個方法創建一個使用原對象作為其原型的新對象。
var obj = {'a': 'a','b': 'b'}var obj1 = Object.create(obj);obj1.__proto__.c = 'c';console.log(obj); // {a:'a',b:'b',c:'c'} 可以看出obj1使用obj作為其構造函數原型
用途:在工廠函數中,將相同的屬性和方法放在構造函數的原型鏈中,不同的放在構造函數中。
?
?
2、構造函數
function Foo() {} var foo = new Foo();1、構造函數也是函數,未了區分,構造函數的函數名首字母大寫。(不是必須,但最好)
2、new的內部實現原理:(建議理解原型和原型鏈,在返回來看這個)
var foo = {};foo.__proto__ = Foo.prototype;Foo.call(foo);通過上面的代碼可以看出:通過實例化構造函數,所生成的對象,它的繼承父類(foo.__proto__)就是構造函數的原型(Foo.prototype)。
function Foo () {this.a = 'a';this.b = 'b'; } var obj1 = new Foo(); var obj2 = {a: 'a',b: 'b' } console.log(‘obj1的構造函數是: ’ + obj1.__proto__.constructor); // obj1的構造函數是: function Foo () { this.a = 'a'; this.b = 'b';} console.log(‘obj2的構造函數是: ’ + obj2.__proto__.constructor); // obj2的構造函數是: function Object() { [native code] }??我的博客
轉載于:https://www.cnblogs.com/seeks/p/7724444.html
總結
以上是生活随笔為你收集整理的javascript原型对象、原型链、构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云oss数据迁移到腾讯云cos 方法
- 下一篇: 我是如何在webpack中使用postc