01/10/2018, 13:36

Ý nghĩa của từ khóa $ trước tên biến

Chào mọi người,mình có đọc được đoạn Code người ta viết thế này để tạo effect Smooth scrolling:

$(document).ready(function () {

    var hash = window.location.hash;
    scrollToElem(hash);

    $('a.page-scroll').on('click', function (event) {
        var $anchor = $(this);
        var href = $anchor.attr('href');
        scrollToElem(href);
        event.preventDefault();
    });
});

Trong Code, mình để ý thấy có dòng này : var $anchor = $(this); , mình thấy đây là một phép gán thông thường đối tượng $(this) cho biến anchor nhưng mình không hiểu tại sao trước tên biến anchor lại cần thêm ký tự $. Nó có quan trọng không ?

Nhờ mọi người giải thích giùm mình với. Mình xin cám ơn trước .

Vũ Thanh viết 15:45 ngày 01/10/2018
stackoverflow.com
anonymous

What is the meaning of symbol $ in jQuery?

javascript, jquery
asked by anonymous on 01:24PM - 26 Jun 09
Son Tran viết 15:48 ngày 01/10/2018

Theo mình hiểu thì dấu $ của $anchor ko có ý nghĩa đặc biệt gì, có thể đó là 1 quy tắc đặt tên cá nhân của tác giả thôi.
bạn hoàn toàn có thể thay thế biến $anchor thành anchor mà ko ảnh hưởng gì đến chương trình.

明玉 viết 15:52 ngày 01/10/2018

https://www.w3schools.com/js/js_variables.asp

Names can also begin with $ and _

Hung viết 15:41 ngày 01/10/2018

Đặt $ trước tên biến là 1 trong các quy tắc theo jQuery convention. Các biến có tên bắt đầu là $ sẽ nhận biết biến đó là 1 jQuery object.

var $anchor = $(this);
var href = $anchor.attr('href');

href là biến thông thường, kiểu string, $anchor là biến jQuery, kiểu jQuery object.


Ngoài ra, $ còn được đặt sau để nhận biết biến đó thuộc đối tượng Observable trong Reactive Programming, cụ thể là RxJS. Theo convention, đối tượng Observable có thể đặt tên theo 2 kiểu.
Tên biến thông thường + $

timer$ = Rx.Observable.interval();

Hoặc tên biến + Observable

timerObservable = Rx.Observable.interval();

Đó là 2 trường hợp biến có kèm theo $. Thông thường không nên đặt tên biến có $, _ dù JavaScript cho phép.

Bài liên quan
0