JS 8 1 OOP概念與繼承

2022-08-27 04:00:13 字數 1093 閱讀 1921

function

foo()

typeof

foo.prototype;

foo.prototype.x = 1;

var obj3= new

foo();

obj3.x;

obj3.y;

foo構造器 this指向obj3物件。obj3的原型(__proto__)會指向foo.prototype。

prototype的作用是foo.prototype會用作new物件的原型。

即obj3.__proto__ == foo.prototype //ture

foo.prototype 

結果:constructor : ƒ foo()

__proto__ : object

constructor屬性指向foo物件本身

即foo.prototype.constructor == foo(true)

__proto__ 是非標準原型。此處是foo.prototype的原型

一般的物件比如{}都有__proto__屬性

注意:prototype是函式的乙個內建物件。__proto__是物件的非標準原型

function

person(name,age)

一般呼叫this指向全域性物件,瀏覽器中為window

new呼叫,this指向乙個空物件,這個空物件的原型為person.prototype。this作為return值。

object.create(person.prototype)建立乙個空物件,並且這個物件的原型指向person.prototype

var o = };

var p =object.create(o)

p.__proto__ == o //

true

以上p的原型指向o

var a =

a.__proto__ == object.getprototypeof(a) //

true

object.getprototypeof獲取物件的原型

js的繼承方法概念

原型繼承 借用建構函式 繼承不了 上的 組合繼承 es6繼承 function person person.prototype.sayhi function class student extends person 上面是繼承,在這裡可以寫其它的方法fn const s newstudent con...

js 物件導向 oop 及繼承方式實現 對比

function person name person.prototype.printname function var person1 new person byron 例項化物件 console.log person1.proto person console.log person1.const...

js組合繼承與寄生繼承

組合繼承 function parent parent,prototype.eat function function clild name 1 重寫原型物件,覆蓋之前的,需重新指向建構函式,2 第二次執行這個函式,避免了屬性共享 clild.prototype new parent clild.p...