Đôi khi tôi muốn thêm vào hành vi để JS chuỗi nhưCó thể mở rộng đối tượng javascript sau đó 'xóa' các phần mở rộng sau khi sử dụng không?
String.prototype.camelize = function() {
return this.replace (/(?:^|[-])(\w)/g, function (, c) {
return c ? c.toUpperCase() : '';
});
};
Tuy nhiên nó thường được đồng ý rằng thay đổi kiểu nguyên thủy là một ý tưởng khủng khiếp.
Tôi có thể theo dõi bất kỳ mẫu nào để gán tạm thời các chức năng cho một loại và xóa sau khi sử dụng không? Hoặc bất cứ điều gì tương tự như của ruby 'class < < obj' mà sửa đổi nguyên mẫu của một đối tượng duy nhất?
EDIT: Mục đích của việc này là để có thể sử dụng cú pháp như
name = s.camelize();
hoặc
nếu (s.hyphenize(). Length < 8);
Vì vậy, đừng bận tâm với phương pháp tiếp cận chức năng tĩnh.
Ngoài ra, câu hỏi này thực sự tập trung hơn vào cách thao tác với các đối tượng js để làm được nhiều hơn với ít tác dụng phụ hơn.
có vấn đề gì với chức năng chính quy mà không sửa đổi gì? – Onheiron
Tại sao bạn phải làm điều này nếu nó chỉ là tạm thời? Hoặc, tại sao không 'function camelize() {...}'? – Leo