Обновление движка V8, нужны изменения в статье "Замыкание"
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- javascript
- Lĩnh vực
- documentation
Hướng nghiên cứu
Mở bài viết về closure tại https://learn.javascript.ru/closure và chạy hai snippet được cung cấp trong V8 hiện tại và Safari, kiểm tra hành vi của trình gỡ lỗi được mô tả trong issue. Cập nhật ví dụ và phần giải thích để phản ánh hành vi hiện tại của V8, đồng thời xác minh rằng phần so sánh với Safari vẫn chính xác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Соавтор нахождения и объяснения причины особенностей движка: @mirageN1349
Пример с особенностью движка в конце статьи теперь не работает (https://learn.javascript.ru/closure)

Теперь, если в лексическом окружении не используется переменная, то движок её не видит
Примеры:
- Здесь мы не используем переменную value1 в локальном лексическом окружении, связанном с функцией f, и движок её не видит
let value = "Сюрприз!";
function f() {
let value1 = "значение1";
let value = "ближайшее значение";
function g() {
console.log(value)
// alert(value1) в консоли НЕ выведет "значение1"
debugger;
}
return g;
}
let g = f();
g();

- Теперь мы используем переменную value1 в локальном лексическом окружении, связанном с функцией f, и движок её видит
let value = "Сюрприз!";
function f() {
let value1 = "значение1";
let value = "ближайшее значение";
function g1() {
console.log(value1)
}
function g() {
console.log(value)
// alert(value1) в консоли выведет "значение1"
debugger;
}
return g;
}
let g = f();
g();

По поводу примера из статьи: в safari, даже когда значение не используется, движок корректно сохраняет свойство лексического окружения (переменную)

- Ngôn ngữ chính
- HTML
- Star
- 4.1k
- Fork
- 922
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của javascript-tutorial/ru.javascript.info
-
suggestion: tutorial
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
javascript-tutorial/ru.javascript.info#2187 · 1 bình luận ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
javascript-tutorial/ru.javascript.info#2163 · 1 bình luận ·
-
[Баг]: Đang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
-
[Предложение: учебник]: Đang mởsuggestion: tutorial
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
suggestion: tutorial
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
Tất cả issue của javascript-tutorial/ru.javascript.info
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
palladius/rails8-app-on-gcp#145 ·
-
NeedsTriage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
error Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
textual definition
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
geneontology/go-ontology#32653 ·