jQueryにおけるdataメソッドの誤解解析

1853 ワード

今日謝亮兄弟は私と何かを議論したとき、性能について話しました.彼はattr操作のカスタム属性data-uidを使っていました.私はdataがいいと言っていました.datasetが実現したので、彼はjQueryソースコードをひっくり返して私に言いました.これを発見しなかったので、私は退屈しました.そこで私はdata方法のソースコードをよく読んで、やっと私がずっと誤解していることに気づいて、それから、前に私にdata方法を聞いた友达に謝罪して、私はあなた达をだまして、あなた达は私を殴ってください.
今日私は再びdataの方法を釈明して、先にjQuery 1.11.0のハンド・バックの中で腫れていることを見て、言うようにしましょうhttp://shouce.jb51.net/jquery/data.html、用法ここでははっきり言っていますが、内部はどうやって実現したのでしょうか.私を突き刺してソースコードを見ます(読めなくても大丈夫です.私は簡単に彼の流れを分析します) , $("#id").data("test"); ( ) : jQuery $("#id") , 、 : data , attributes 。 : , jQuery , undefined, , json。 attr ? $("#id").data("test"); : : jQuery $("#id") , 。 : data , jQuery : , , attributes , ? js , var cache = {}; jQuery , 、 dom , dom 。 , attr , $("#id").data("test", "123"); data-test="hehe" $("#id").attr("data-test", "123"); data-test="123" , ? $("#id").data("test", {str: "hehe"}); {str: "hehe"} , data-test="hehe" $("#id").attr("data-test", {str: "hehe"}); data-test="[object Object]" , 。
実は私は前にもあなたたちをだましていません.カスタム属性はいつもattrする必要はありません.dataはjQueryが私たちに与えたスイスの軍刀で、とても鋭いです.
はい、私は怠け者で、怠け者の配図、すでに多くの字を書いて、もし何か言うのが間違っているところがあれば、あなた达は私を殴ってください