zoukankan
html css js c++ java
使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
利用 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();
查看全文
相关阅读:
Ionic app 通知在Moto 360 Watch上显示通知(2)
Ionic app 通知在Moto 360 Watch上显示通知(1)
Ionic App ActionSheet布局问题
Ionic 图片延时加载
Ionic app 上传图片之webApi接口
Ionic app升级插件开发
Ionic 添加java原生代码 报support.v4不存在问题
Ionic 中badge的应用
Java 期末复习提纲
win10 + VS2015 + EF6 + MySQL
原文地址:https://www.cnblogs.com/RChen/p/111230.html
最新文章
bootstrap居中
不安装Oracle数据库使用plsqldevloper
bootstrap table导出功能无效报错Uncaught INVALID_CHARACTER_ERR: DOM Exception 5和导出中文乱码问题
在spring中,C3P0的一些配置(部分)
JDK的bin目录下各种工具的使用说明_对不起自己,这么久没写博,抱歉
ASP.NET 教程(一)
mybatis(4)_二级缓存深入_使用第三方ehcache配置二级缓存
mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
Jetty简介
oracle 10g将数据导入到指定表空间的步骤
热门文章
was缓存以致web.xml更改无效
WAS部署 -- SRVE0255E: 尚未定义要处理 /snoop 的 Web 组/虚拟主机
在WAS下找不到主机名称的问题
WAS上配置数据源连接失败
修改WSAD的默认工作区(转)
websphere 配置库中已存在应用程序,异常处理
在WAS控制台,环境下添加新的虚拟主机别名
WebSphere Studio Application Developer 5.0 优化设置
Ionic App之国际化(2) json数组的处理
Ionic App之国际化(1)单个参数的处理
Copyright © 2011-2022 走看看