![](/img/trans.png)
[英]JavaScript: change a variable with a prototype function inside the constructor
[英]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.