Jquery學習1

天涯怂人發表於2024-03-10

一.jquery中prototype
javascript中的每個物件都有prototype屬性,Javascript中物件的prototype屬性的解釋是:返回物件型別原型的引用。每一個建構函式都有一個屬性叫做原型。這個屬性非常有用:為一個特定類宣告通用的變數或者函式。prototype是一個物件,因此,你能夠給它新增屬性。你新增給prototype的屬性將會成為使用這個建構函式建立的物件的通用屬性。每個函式都有一個prototype屬性,prototype包含函式例項共享的方法和屬性。
scada.scheme.EditableScheme.prototype = Object.create(scada.scheme.Scheme.prototype);
scada.scheme.EditableScheme.constructor = scada.scheme.EditableScheme;
這段程式碼是在JavaScript中建立一個新的物件原型繼承的示例,具體針對scada.scheme.EditableScheme和scada.scheme.Scheme這兩個物件。我會為你逐步解釋這段程式碼。

Object.create 方法

Object.create() 是一個JavaScript方法,它建立一個新物件,使用現有的物件來提供新建立的物件的__proto__。這意味著新物件會繼承現有物件的屬性和方法。

javascript

var newObject = Object.create(existingObject);

在上面的程式碼中,newObject將繼承existingObject的所有屬性和方法。
2. 設定 scada.scheme.EditableScheme 的原型
javascript
scada.scheme.EditableScheme.prototype = Object.create(scada.scheme.Scheme.prototype);
這行程式碼的意思是,將scada.scheme.EditableScheme的原型設定為基於scada.scheme.Scheme的原型建立的新物件。因此,scada.scheme.EditableScheme將繼承scada.scheme.Scheme的所有屬性和方法。
3. 設定建構函式
javascript
scada.scheme.EditableScheme.constructor = scada.scheme.EditableScheme;
當你使用Object.create()來設定原型時,新的原型物件會繼承其原始物件的constructor屬性。這意味著scada.scheme.EditableScheme.prototype.constructor現在指向scada.scheme.Scheme,而不是我們期望的scada.scheme.EditableScheme。
因此,上面的程式碼行是顯式地將scada.scheme.EditableScheme.prototype的constructor屬性設定回scada.scheme.EditableScheme,以確保其正確性。
二。constructor是Object型別的原型屬性,它能夠返回當前物件的構造器(型別函式)。利用該屬性,可以檢測複合型別資料的型別,如物件,陣列和函式等。【示例1】下面程式碼可以檢測物件和陣列的型別,以此可以過濾物件、陣列。
var o = {};
var a = [];
if (o.constructor == Object){
console.log("o是物件")
}
if (a.constructor == Array){
console.log("a是陣列“)
}
結合typeof運算子和constuctor屬性,可以檢測不同的資料型別。以下是常見的資料型別檢測結果。
值(value) typeof value(表示式返回值) value.constructor(構建函式的屬性值)

function className(){};

var value = new className();
"object" className

相關文章