Trong một vài năm gần đây, ngôn ngữ lập trình web JavaScript phát triển khá mạnh, với sự hỗ trợ của rất nhiều nền tảng như các hệ điều hành di động, các máy tính bảng, các điện thoại thông minh. Từ sự hỗ trợ mạnh mẽ này mà bản thân ngôn ngữ JavaScript cũng có những cải tiến vượt bậc. Và hiện tại ngôn ngữ này đã hỗ trợ lập trình hướng đối tượng khá tốt. Hãy vào trang chi tiết để xem cách tiếp cận cách lập trình hướng đối tượng trong JavaScript nếu bạn chưa quen.
- Demo
- Phóng to
- Tải lại
- Cửa sổ mới
Miễn phí web hosting 1 năm đầu tại iPage
Nếu bạn vẫn còn đang tìm kiếm một nhà cung cấp hosting đáng tin cậy, tại sao không dành chút thời gian để thử với iPage, chỉ với không quá 40.000 VNĐ/tháng, nhưng bạn sẽ được khuyến mãi kèm với quà tặng trị giá trên 10.000.0000 VNĐ nếu thanh toán cho 24 tháng ~ 900.000 VNĐ?
Có trên 1 triệu khách hàng hiện tại của iPage đã & đang hài lòng với dịch vụ, tuyệt đối chắc chắn bạn cũng sẽ hài lòng giống họ! Quan trọng hơn, khi đăng ký sử dụng web hosting tại iPage thông qua sự giới thiệu của chúng tôi, bạn sẽ được hoàn trả lại toàn bộ số tiền bạn đã sử dụng để mua web hosting tại iPage. Wow, thật tuyệt vời! Bạn không phải tốn bất kì chi phí nào mà vẫn có thể sử dụng miễn phí web hosting chất lượng cao tại iPage trong 12 tháng đầu tiên. Chỉ cần nói chúng tôi biết tài khoản của bạn sau khi đăng ký.
Nếu muốn tìm hiểu thêm về ưu / nhược điểm của iPage, bạn hãy đọc đánh giá của ChọnHostViệt.com nhé!
Using a Constructor Function.
Let's use our previous constructor function and build upon it so it performs some basic (but dynamic) operations when we instantiate it.
function myObject(){ this.iAm = 'an object'; this.whatAmI = function(){ alert('I am ' + this.iAm); }; };
Just like any JavaScript function, we can use arguments with our constructor function;
function myObject(what){ this.iAm = what; this.whatAmI = function(language){ alert('I am ' + this.iAm + ' of the ' + language + ' language'); }; };
Now let's instantiate our object and call its whatAmI method, filling in the required fields as we do so.
var myNewObject = new myObject('an object'); myNewObject.whatAmI('JavaScript');
This will alert 'I am an object of the JavaScript language.'
To Instantiate or not to Instantiate
I mentioned earlier about the differences between Object Constructors and Object Literals and that when a change is made to an Object Literal it affects that object across the entire script, whereas when a Constructor function is instantiated and then a change is made to that instance, it won't affect any other instances of that object. Let's try an example;
First we will create an Object literal;
var myObjectLiteral = { myProperty : 'this is a property' } //alert current myProperty alert(myObjectLiteral.myProperty); //this will alert 'this is a property' //change myProperty myObjectLiteral.myProperty = 'this is a new property'; //alert current myProperty alert(myObjectLiteral.myProperty); //this will alert 'this is a new property', as expected
Even if you create a new variable and point it towards the object, it will have the same effect.
var myObjectLiteral = { myProperty : 'this is a property' } //alert current myProperty alert(myObjectLiteral.myProperty); //this will alert 'this is a property' //define new variable with object as value var sameObject = myObjectLiteral; //change myProperty myObjectLiteral.myProperty = 'this is a new property'; //alert current myProperty alert(sameObject.myProperty); //this will still alert 'this is a new property'
Now let's try a similar exercise with a Constructor function.
//this is one other way of creating a Constructor function var myObjectConstructor = function(){ this.myProperty = 'this is a property' } //instantiate our Constructor var constructorOne = new myObjectConstructor(); //instantiate a second instance of our Constructor var constructorTwo = new myObjectConstructor(); //alert current myProperty of constructorOne instance alert(constructorOne.myProperty); //this will alert 'this is a property' //alert current myProperty of constructorTwo instance alert(constructorTwo.myProperty); //this will alert 'this is a property'
So as expected, both return the correct value, but let's change the myProperty for one of the instances.
//this is one other way of creating a Constructor function var myObjectConstructor = function(){ this.myProperty = 'this is a property' } //instantiate our Constructor var constructorOne = new myObjectConstructor(); //change myProperty of the first instance constructorOne.myProperty = 'this is a new property'; //instantiate a second instance of our Constructor var constructorTwo = new myObjectConstructor(); //alert current myProperty of constructorOne instance alert(constructorOne.myProperty); //this will alert 'this is a new property' //alert current myProperty of constructorTwo instance alert(constructorTwo.myProperty); //this will still alert 'this is a property'
As you can see from this example, even though we changed the property of constructorOne it didn't affect myObjectConstructor and therefore didn't affect constructorTwo. Even if constructorTwo was instantiated before we changed the myProperty property of constructorOne, it would still not affect the myProperty property of constructorTwo as it is a completely different instance of the object within JavaScript's memory.
So which one should you use? Well it depends on the situation, if you only need one object of its kind for your script (as you will see in our example at the end of this article), then use an object literal, but if you need several instances of an object, where each instance is independent of the other and can have different properties or methods depending on the way it's constructed, then use a constructor function.
- Lượt gửi (0)
- Mới
Tạo video doanh nghiệp của bạn bằng AI chỉ với giọng nói hoặc văn bản
chatGPTaz.com
Nói chuyện với ChatGPT bằng ngôn ngữ mẹ đẻ của bạn
Ứng dụng AI Video
Ứng dụng video AI MIỄN PHÍ đầu tiên của bạn
Deepfake Video
Deepfake AI Video Maker
Deepfake
Deepfake AI Video Maker
AI Deep Fake
Deepfake AI Video Maker
AIvidio
AI Video Mobile Solutions
AIvideos
AI Video Platform & Solutions
AIvedio
AI Video App Maker
Artificial General Intelligence
Ai and higher level Artificial General Intelligence (AGI)
Artificial General Intelligence
Ai and higher level Artificial General Intelligence (AGI)
Faceswap AI trực tuyến
Đổi mặt Video, Ảnh & GIF ngay lập tức với Công cụ AI mạnh mẽ - Faceswap AI Trực tuyến MIỄN PHÍ
Faceswap AI trực tuyến
Đổi mặt Video, Ảnh & GIF ngay lập tức với Công cụ AI mạnh mẽ - Faceswap AI Trực tuyến MIỄN PHÍ
Faceswap AI trực tuyến
Đổi mặt Video, Ảnh & GIF ngay lập tức với Công cụ AI mạnh mẽ - Faceswap AI Trực tuyến MIỄN PHÍ
Powerful AI Presentation PPT Maker for FREE
Build an impressive presentation with our free online AI presentation app
Your next top AI Assistant
Claude AI, developed by Anthropic
Your next top AI Assistant
Claude AI, developed by Anthropic
Temu tặng $500 cho người dùng mới
Claim Free Temu $500 Credit via Affiliate & Influencer Program
Tín dụng quảng cáo TikTok miễn phí
Làm chủ quảng cáo TikTok cho hoạt động tiếp thị doanh nghiệp của bạn
Dall-E-OpenAI.com
Tự động tạo ra hình ảnh sáng tạo với AI
chatGPT4.win
Nói chuyện với ChatGPT bằng ngôn ngữ mẹ đẻ của bạn
Sản phẩm AI đầu tiên của Elon Musk - Grok/UN.com
Nói chuyện với Grok AI Chatbot bằng ngôn ngữ của bạn
Công cụ.win
Mở trung tâm công cụ miễn phí để mọi người sử dụng với hàng trăm công cụ
GateIO.gomymobi.com
Airdrop miễn phí để nhận, chia sẻ lên đến 150.000 đô la cho mỗi dự án
iPhoneKer.com
Tiết kiệm tới 630$ khi mua iPhone 16 mới
Mua Robot Tesla Optimus
Đặt mua Tesla Bot: Robot Optimus Gen 2 ngay hôm nay với giá dưới 20.000 đô la