01/10/2018, 16:55
'fn.init' trong javascript là gì?
E định làm một framework cho riêng mình giống như jquery, đồng thời cũng là một newbie của javascript, mà chưa hiểu những thứ gọi là fn.init là cái gì, các pro có thể giúp em giải đáp được không ạ, e cảm ơn nhiều
(function(){
"use strict";
var $ = function(selector,context){
return new $.fn.init(selector,context)
}
}
})(window)
Bài liên quan





trong phần viết plugin cho jquery nó có giải thích mà https://learn.jquery.com/plugins/basic-plugin-creation/
$là cách thay thế, viết gọn hơn chojQuery, nên$()vàjQuery()là như nhau.$.fnlà 1 object chứa tất cả function liên quan đến jQuery.Tuy nhiên
initkhông phải là property của$.fn, Để hiểu hơn khi truy xuất 1 property của 1 object, JS engine sẽ gọi đến built-in[[GET]]với các tham số và object và tên property cần truy xuất,$.fn.inittương đương cách gọi[[GET]]($.fn, 'init').Phần hiện thực của
[[GET]]($.fn, 'init')kiểm tra như sau:initcó phải là 1 property của$.fnkhông, kết quả không cóinit(như mình nói ở trên).initcó phải là property của$.fn.__proto__hay không?$.fn.__proto__vàjQuery.prototypecùng trỏ tới 1 object chung. TrongjQuery.prototypecó property tên làinit. Kết quả trả về giá trị của propertyinitlà function object (callable object).Lời gọi hàm
$()sẽ gọi tới$.fn.init().Do đó, các functions như
$(),$.fn.init(),jQuery(),jQuery.prototype.init()đều thực hiện như nhau.