Trước hết tôi xin lỗi nếu đây là một câu hỏi ngu ngốc. Tôi đã viết hai đoạn mã dưới đây. Đoạn mã đầu tiên được tìm thấy từ here được viết bởi John Resig
và chắc chắn anh ấy là một trong những người bán và đoạn mã thứ hai được tôi sửa đổi từ mã gốc chỉ để hiểu sự khác biệt nhưng tôi không chắc chắn sự khác biệt giữa cả hai và những gì Tôi có thể và không thể làm với cả hai tương đối. Xin ai đó giúp tôi hiểu sự khác biệt. Cảm ơn.OOP javascript và Simple Class Instantiation
function makeClass(){
return function(args){
if (this instanceof arguments.callee) {
if (typeof this.init == "function")
this.init.apply(this, args.callee ? args : arguments);
}
else return new arguments.callee(arguments);
};
}
var User = makeClass();
User.prototype.init = function(first, last){
this.name = first + " " + last;
};
var user = User("John", "Resig");
console.log(user);
Modified phiên bản
function myClass(args)
{
if (this instanceof arguments.callee)
{
this.init = function(first, last){
this.name = first + " " + last;
};
this.init.apply(this, args.callee ? args : arguments);
}
else return new arguments.callee(arguments);
}
var obj = new myClass('Sheikh', 'Heera');
console.log(obj);
Tại sao tôi nên sử dụng nguyên mẫu của đối tượng để thêm một phương pháp (sau khi thực hiện một ví dụ) thay vì viết nó bên trong các nhà xây dựng?