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();
查看全文
相关阅读:
array、vector、forward-list、list、deque的扩容,栈与队列,基于范围的for循环
带默认参数值的函数
:: 访问全局变量
using来定义类的别名,typedef,#define
const int* p
内存
变量的定义,强制类型转换
HTTP请求流程(一)----流程简介
DIY一个DNS查询器:程序实现
详解C/C++函数指针声明
原文地址:https://www.cnblogs.com/RChen/p/111230.html
最新文章
Spring官网下载dist.zip的几种方法
entity模板
Freemarker中Configuration的setClassForTemplateLoading方法参数问题(转)
SpringMVC拦截器(以及排除拦截的地址)(转)
利用 druid 的 sql parser 模块解析 sql 语句(转)
Understanding JavaScript Function Invocation and "this"
this
Private Members in JavaScript
ubuntu 系统应用安装方式
make cmake gcc 间的关系
热门文章
移动函数
C++ 二分法求解方程的解
python中的赋值操作和复制操作
C++ C# python 中输入输出函数对比
C++ C# python 中常用数学计算函数对比
分布归一化
中心极限定理
高斯分布
构造函数、拷贝构造函数、析构函数
初始化列表
Copyright © 2011-2022 走看看