Javascript原型模式-反馈
Javascript Prototype Pattern - Feedback
我正在从使用Javascript揭示模块模式切换,我下面的内容似乎有效。我想知道的是,我所做的是否正确,是否遵循了最佳实践。例如,我保留"this"状态并在构造函数中调用init函数的方式是否正确?
var testApp = function(){
//Kick it off
this.init();
};
testApp.prototype = {
getUsers: function(callback){
//do stuff
},
buildUserTable: function(data){
//do stuff
},
refreshTable: function(){
//Example
this.getUsers();
},
init: function(){
//Preserve 'this'
var instance = this;
//Callback + init
this.getUsers(function(data){
instance.buildUserTable(data);
});
$('.formSection .content').hide();
$('.formSection .content:first').slideDown('slow').addClass('selected');
}
};
window.onload = function () {
var form = new testApp();
};
你完全重写了原型。你不能用这种方式处理继承。
由于{}
是一个对象,因此您隐式地继承了Object
,但没有其他对象。
继承是这样的:
function A() {};
function B() {};
B.prototype = new A();
var b = new B();
console.log(b instanceof A); // "true"
B
现在继承A
和Object
。
如果你现在这样做:
B.prototype = {
foo: function () {}
};
var b = new B();
console.log(b instanceof A); // "false"
你不再继承A
;
如何在原型中添加函数?使用以下符号:
B.prototype.foo = function () {};
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 带有let的JS/EECMAScript6私有字段的模式
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 执行动态模式弹出
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- AngularJS ui路由器html5模式中断路由
- 包含圆括号的JavaScript Regex模式
- 显示模块模式在Knockout中设置模型的新实例
- 创建页面的模式窗口加载以用于用户反馈
- Javascript原型模式-反馈
- Javascript继承模式.请反馈