Điều này rất đơn giản và thẳng về phía trước. Nhìn vào mã. Cố gắng nắm bắt khái niệm cơ bản đằng sau phần mở rộng javascript.
Đầu tiên, hãy để chúng tôi mở rộng hàm javascript.
function Base(props) {
const _props = props
this.getProps = () => _props
// We can make method private by not binding it to this object.
// Hence it is not exposed when we return this.
const privateMethod = () => "do internal stuff"
return this
}
Bạn có thể mở rộng hàm này bằng cách tạo hàm con theo cách sau
function Child(props) {
const parent = Base(props)
this.getMessage = () => `Message is ${parent.getProps()}`;
// You can remove the line below to extend as in private inheritance,
// not exposing parent function properties and method.
this.prototype = parent
return this
}
Bây giờ bạn có thể sử dụng chức năng Con như sau,
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
Chúng ta cũng có thể tạo Hàm Javascript bằng cách mở rộng các lớp Javascript, như thế này.
class BaseClass {
constructor(props) {
this.props = props
// You can remove the line below to make getProps method private.
// As it will not be binded to this, but let it be
this.getProps = this.getProps.bind(this)
}
getProps() {
return this.props
}
}
Hãy để chúng tôi mở rộng lớp này với hàm Con như thế này,
function Child(props) {
let parent = new BaseClass(props)
const getMessage = () => `Message is ${parent.getProps()}`;
return { ...parent, getMessage} // I have used spread operator.
}
Một lần nữa, bạn có thể sử dụng hàm Con như sau để nhận được kết quả tương tự,
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
Javascript là ngôn ngữ rất dễ sử dụng. Chúng tôi có thể làm hầu hết mọi thứ. Chúc mừng JavaScripting ... Hy vọng tôi có thể cho bạn một ý tưởng để sử dụng trong trường hợp của bạn.