2011-11-19 35 views
5

Tôi đang cố gắng để mở rộng localStorage w/sau ...localStorage.prototype là null

localStorage.prototype.setItem2 = function(key,value) { 
    localStorage.setItem(key,value); 
} 

tôi nhận được "localStorage.prototype là null." Tôi đang làm điều này một cách chính xác? Cảm ơn!

Trả lời

8

localStorage là một phiên bản của đối tượng Lưu trữ. Hãy thử Storage.prototype.setItem2 hay Object.getPrototypeOf(localStorage).setItem2

1

Bạn có thể trực tiếp đặt nó bằng cách:

localStorage.setItem2 = function(key, value) { 
    // do something 
} 

hoặc sử dụng Storage.prototype

Trước khi bạn làm như vậy, chắc chắn rằng bạn không ghi đè lên bất cứ tài sản hiện có. Điều này là để ngăn chặn bất kỳ ghi đè nào đối với các cải tiến trong tương lai đối với API bởi các trình duyệt.

+0

Nó không hoạt động trong Chrome (phiên bản 46.0.2490.80 m) vì localStorage.setItem2 đang trở thành một chuỗi hàm, chứ không phải chính hàm đó. – Moon

0

LocalStoragesessionStorage Đối tượng thực hiện từ Storage Giao diện.

Bạn có thể thử nghiệm giao diện Bộ nhớ.

Storage.prototype.removeItems = function() { 
    for(item in arguments) { 
    this.removeItem(arguments[item]); 
    } 
};