簡體   English   中英

使用帶有jQuery的原型函數在構造函數中傳遞的變量

[英]using the variable passed in constructor in prototype function in javascript with jquery

我有幾個具有相同“相冊”類的div,因此我想使用構造函數和原型創建一個類。 這就是我所做的

function Album(album){
    this.album = album;

    console.log(this.album === album)
    console.log($(this.album) === $(album))
}

Album.prototype = {
    init: function(){

    },

    loadImages: function(){

    }
};

$('.album').each(function(){    
    var album = new Album(this);
});

我需要訪問init函數中傳遞給Album類的Album變量,因此必須將其存儲在this.album中。 但是我不明白為什么console.log(this.album === album)為true但console.log($(this.album)=== $(album))為false

我需要在原型中使用jquery,還有其他方法嗎? 謝謝。

$('body') === $('body') // false

基本上,您正在執行此操作。 jQuery與您為難。

對於對象, ===運算符僅在是同一對象時才為true。 在這種情況下,jQuery每次包裝DOM元素時都會創建一個全新的對象,即使包裝與第二遍相同的元素,它也會創建一個新對象。

這是為什么在不帶jQuery的純JS中的示例:

var domEl = document.getElementById('whatev');
var a = { el: domEl };
var b = { el: domEl };

domEl === domEl // true
a === b         // false

這里有2個對象,它們都有相同的數據並包裝相同的對象。 但是它們是不同的對象,因此彼此不是===

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM