JavaScript繼承和object對象

編程語言 JavaScript 技術 下班很無聊 2017-06-13

javascript繼承和object對象

對象的一個類可以從現有的類中派生,並且擁有現有的類的方法或是屬性,這個過程叫做繼承。被繼承的類叫基類或是父類,繼承的類叫子類。

一個對象擁有另一個對象的屬性和方法

優點:提高代碼的重用性

提高代碼的可維護性

提高代碼的邏輯性

一、object對象

var obj=new Object();

alert(Object);//function Object() {[native code]}

alert(typeof Object); //function

A、屬性:

1.constructor--對創建對象的函數的引用(指針)

function fun(){}

var aa=new fun();

var bb=new Object();

alert(aa.constructor);//function fun(){}

alert(bb.constructor);//function Object() {[native code]}

2.prototype--對該函數對象的對象原型的引用,是函數對象的默認屬性

(1)對象的共享屬性存放到代碼段中

(2)實現繼承

function fun(){}

var aa = new fun();

alert(aa.prototype);//undefined

alert(fun.prototype);//[object Object]

B、方法

1.hasOwnProperty(property)--判斷對象是否有某個特定屬性

function fun(){

this.name="haha"

}

var aa = new fun();

alert(aa.hasOwnProperty("name"));//true

2.isPrototypeOf(object)--判斷對象是否為另一個對象的原型(用來檢測對象的類型)

var arr=new Array();

alert(Array.prototype.isPrototypeOf(arr));//true

3.運算符instanceof (實例)

var arr=new Array();

alert(arr instanceof Array);//true

二、繼承

A、原型繼承

function person(){

this.name="張三";

this.say=function(){

alert("zhang");

}

}

function student(){}

student.prototype=new person();

var aa=new student();

aa.say();//zhang

B、對象冒充的形式

1.call

obj1.fun.call(obj2,參數1...)讓對象1的方法冒充成對象2的方法

2.apply

obj1.fun.call(obj2,[參數1,參數2....])

function person(){

this.name="張三";

this.say=function(){

alert("zhang");

}

}

function student(){}

var ren=new person();

var aa=new student();

ren.say.call(aa);

aa.say();//zhang

function person(name){

this.name=name;

this.say=function(){

alert("zhang");

}

}

function student(name){

person.apply(this,["zhangsan"]);

}

var aa=new student();

alert(aa.name);//zhangsan

aa.say();//zhang

JavaScript繼承和object對象

相關推薦

推薦中...