tôi đã thực hiện một ví dụ đơn giản của vấn đề của tôi với một đối tượng babel:Làm cách nào để mở rộng đối tượng javascript?
function babel(){
this.english = {
hello: function() { alert('hello'); },
goodbye: function() { alert('goodbye'); }
teeshirt: function() { alert('T-shirt'); }
}
}
Bây giờ, tôi muốn mở rộng đối tượng này:
babel.prototype.french = {
bonjour: function() { alert('bonjour'); },
aurevoir: function() { alert('au revoir'); }
}
Nhưng nếu tôi cần phải sử dụng một chức năng hiện có xác định trước ?
babel.prototype.french = {
bonjour: function() { alert('bonjour'); },
aurevoir: function() { alert('aurevoir'); },
teeshirt: function() { this.english.teeshirt(); }
}
Những gì tôi có thể làm là:
var say = new babel();
(function (_this) {
babel.prototype.french = {
bonjour: function() { alert('bonjour'); },
aurevoir: function() { alert('aurevoir'); },
hello: function() { _this.english.hello(); }
}
})(say);
Nhưng trong trường hợp này, tôi sẽ luôn luôn sử dụng bối cảnh của đối tượng nói, phải không?
bản sao có thể có của [Truy cập cha mẹ của cha mẹ từ đối tượng javascript] (http://stackoverflow.com/questions/183702/access-parents-parent-from-javascript-object) – JJJ
Bạn có muốn 'var b = babel mới(); b.french.teeshirt(); 'để cảnh báo" áo phông "? Hoặc một số hành vi khác? –
Vâng, đó là hành vi tôi muốn, nhưng hơn nữa, tôi muốn sử dụng bối cảnh của đối tượng của tôi. – Natim