使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
来源:互联网 发布:黑河学院网络管理系统 编辑:程序博客网 时间:2024/05/16 12:26
利用 this 实现的公共方法中可以访问类的私有成员(用 var 声明的变量),私有方法(用 function 直接定义的方法);
利用原型扩展实现的方法中,无法调用私有成员和变量。
例子如下所示(把其中注释掉的两行恢复就可以看到区别):
利用原型扩展实现的方法中,无法调用私有成员和变量。
例子如下所示(把其中注释掉的两行恢复就可以看到区别):
function T(name) {
this.Name = name;
var x = 5;
function privateFunc() {
alert('in private method: do sometheing');
}
this.PublicFunc = function() {
// 可以调用私有方法,访问私有成员变量。
privateFunc();
alert('x = ' + x);
alert('in public method: do something else.');
}
}
//var t = new T('t1');
//t.PublicFunc();
T.prototype.PublicFunc2 = function() {
alert('in public method 2.');
// 下面两行都会出错。在利用 prototype 扩展的方法里无法调用对象的私有方法,也访问不到通过 var 定义的私有成员。
// alert(x);
// privateFunc();
}
var t2 = new T('t2');
t2.PublicFunc();
t2.PublicFunc2();
this.Name = name;
var x = 5;
function privateFunc() {
alert('in private method: do sometheing');
}
this.PublicFunc = function() {
// 可以调用私有方法,访问私有成员变量。
privateFunc();
alert('x = ' + x);
alert('in public method: do something else.');
}
}
//var t = new T('t1');
//t.PublicFunc();
T.prototype.PublicFunc2 = function() {
alert('in public method 2.');
// 下面两行都会出错。在利用 prototype 扩展的方法里无法调用对象的私有方法,也访问不到通过 var 定义的私有成员。
// alert(x);
// privateFunc();
}
var t2 = new T('t2');
t2.PublicFunc();
t2.PublicFunc2();
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- JS的this、__proto__ 和. prototype 、constructor
- this指针的使用js
- jquery和prototype.js的区别
- jquery和prototype.js的区别
- 关于js中this 和 prototype的 理解。
- prototype定义方法和this定义方法的区别
- js的this指针
- js的this指针
- this指针和m_hWnd的区别
- this指针和m_hWnd的区别
- this指针和m_hWnd的区别
- this指针和m_hWnd的区别
- JS prototype的使用
- js prototype的使用
- OO和OB的区别
- js面向对象编程: js类定义函数时prototype和this区别?
- 开始新生活!
- 感觉 Data Access Application Block(DAAB) 里也有可能写得不太好的地方
- 执行存储过程的多种写法
- 关于加密存储过程
- 一次难忘的 MTS 故障的排除过程
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- 采用 web standard 开发时如何设定表格的单元格间距
- 令人郁闷的 DOCTYPE
- 谁能告诉我这两个方法的区别?
- ASP.NET 中 DataGrid 导出到 Excel 的封装实现
- Making up Data with Partition Outer Join
- 利用栈实现把十进制整数转换为二至十六之间的任一进制数的功能
- interval-based-row-generation
- Microsoft的Gazelle VS Google的Chrome OS,浏览器的未来?