Đây là mã JavaScript được tạo bởi từ khóa extends
của CoffeeScript. Làm thế nào các chuỗi nguyên mẫu được thiết lập?Cách hiểu mã JavaScript được tạo bởi từ khóa 'extends` của CoffeeScript
var __hasProp = Object.prototype.hasOwnProperty,
__extends = function(child, parent) {
for (var key in parent) {
if (__hasProp.call(parent, key)) child[key] = parent[key];
}
function ctor() { this.constructor = child; }
ctor.prototype = parent.prototype;
child.prototype = new ctor;
child.__super__ = parent.prototype;
return child;
};
Phần nào là cho bạn gặp rắc rối? –
không hiểu dòng này: 'ctor.prototype = parent.prototype; ' – powerboy
Chi tiết bài đăng trên blog của tôi đó. 'ctor' được gọi là hàm tạo * thay thế *. Đó là một hàm tạo riêng biệt mà bạn sao chép nguyên mẫu của phụ huynh. Nó thiết lập chuỗi nguyên mẫu 'child.prototype = new ctor' mà không cần phải gọi hàm tạo của cha mẹ chỉ để thiết lập kế thừa. Cách thiết lập thừa kế hơn (nhưng có vấn đề) là bằng cách thực hiện 'child.prototype = new parent'. Một lần nữa, bài đăng trên blog của tôi đi sâu vào chi tiết về các vấn đề với số –