Tôi đang đọc JavaScript của của Douglas Crockford: Các phần tốt và tôi hơi bối rối về điều gì đó. Trong chương 4, dưới các kiểu Augmenting, anh ta tạo ra một phím tắt để thêm một phương thức.Các loại chuyển tiếp trong JavaScript
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Ông nói:
Bằng cách làm tăng Function.prototype với một phương pháp 'phương pháp', chúng tôi không còn phải gõ tên của thuộc tính property. Đó là chút xấu xí bây giờ có thể được ẩn.
Sau đó, anh ta tiếp tục sử dụng phương pháp này để thêm phương thức 'nguyên' vào nguyên mẫu số với điều này.
Number.method('integer', function() {
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
document.writeln((-10/3).integer()); // -3
Tôi là một chút nhầm lẫn ở đây ... bởi vì chúng tôi đã thêm một phương pháp 'phương pháp' cho Chức năng nguyên mẫu, không phải là số nguyên mẫu. Và với kiến thức của tôi, đối tượng Number không thừa kế từ nguyên mẫu Function (mặc dù có lẽ tôi đã sai). Tôi thấy rằng điều này làm việc, nhưng tôi không hiểu tại sao các đối tượng Number có thể sử dụng phương thức 'method' này để thêm ... phương thức.
Đây là một câu hỏi hay.Phải mất một thời gian tôi mới hiểu được mã nhưng cuối cùng tôi đã nhận được nó. – Paul
cảm ơn tất cả vì những câu trả lời hay. điều đó có ý nghĩa bây giờ. –
Câu hỏi tiếp theo của tôi là điểm của bit đầu tiên là gì. Tôi đoán tôi không hiểu câu nói của anh ấy. Phương pháp 'phương pháp' này hiệu quả hơn hay tốt hơn cách trực tiếp thêm phương thức vào nguyên mẫu Số trực tiếp như thế nào? Như thế này: Number.prototype.integer = function() { trả lại Toán [this <0? 'ceil': 'floor'] (điều này); } –