Hãy tưởng tượng chức năng như thế này:Làm cách nào để tạo chức năng có thể khóa trong JavaScript?
function foo(x) {
x += '+';
return x;
}
Cách sử dụng của nó sẽ như thế nào:
var x, y;
x = 'Notepad';
y = foo(x);
console.log(y); // Prints 'Notepad+'.
Tôi đang tìm kiếm một cách để tạo ra chức năng đó là thể kết nối với các chức năng khác.
Hãy tưởng tượng sử dụng:
var x, y;
x = 'Notepad';
y = x.foo().foo().toUpperCase(); // Prints 'NOTEPAD++'.
console.log(y);
Làm thế nào tôi sẽ làm điều này?
bạn nên kiểm tra một thuộc tính trên các kiểu gốc trước khi thêm nó, ví dụ 'if (! ('Foo' trong String.prototype)) {String.prototype.foo = function() {.. .}} ' – keeganwatkins
Nếu bạn muốn mở rộng một đối tượng mà không vi phạm kiểu liệt kê, hãy sử dụng (semi-modern) [' Object.defineProperty'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ Object/defineProperty): 'Object.defineProperty (String.prototype, {value: function() {return this +" + ";}})'. Theo mặc định, cờ 'enumerable' được đặt thành' false'. – Phrogz
@keeganwatkins có nó là :). Tôi cho rằng OP chỉ hỏi về chuỗi như là một ví dụ, vì vậy tôi giữ cảnh báo ở mức tối thiểu, nhưng đó là một điểm tốt. –