TAILIEUCHUNG - Phát triển Javascript - part 15

Tham khảo tài liệu 'phát triển javascript - part 15', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Memoization 113 Listing Memoizing the Fibonacci sequence in a closure var fibonacci function var cache function fibonacci x if x 2 return 1 if cache x cache x fibonacci x - 1 fibonacci x - 2 return cache x return fibonacci This alternative version of fibonacci runs many orders of magnitude faster than the original one and by extension is capable of calculating more numbers in the sequence. However mixing computation with caching logic is a bit ugly. Again we will add a function to to help separate concerns. The memoize method in Listing is capable of wrapping a method adding memoization without cluttering the calculation logic. Listing A general purpose memoize method if function var cache var func this return function x if x in cache cache x this x return cache x Download from 114 Applied Functions and Closures This method offers a clean way to memoize functions as seen in Listing . Listing Memoizing the Fibonacci function TestCase FibonacciTest test calculate high fib value with memoization function var fibonacciFast assertEquals 1346269 fibonacciFast 30 The memoize method offers a clean solution but unfortunately only deals with functions that take a single argument. Limiting its use further is the fact that it blindly coerces all arguments to strings by nature of property assignment which will be discussed in detail in Chapter 7 Objects and Prototypal Inheritance. To improve the memoizer we would need to serialize all arguments to use as keys. One way to do this which is only slightly more complex than what we already have is to simply join the arguments as Listing does. Listing A slightly better memoize method if function var cache var func this var join return function var key arguments if key in cache cache key

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.