是的. 原函数原型里的局部变量, 局部函数在 prototype 都是调用不到的.
不过用 prototype 也有它的好处, 对象原型可以做得比较精小, 而后期扩展的灵活性增加
不过用 prototype 也有它的好处, 对象原型可以做得比较精小, 而后期扩展的灵活性增加
解决方案 »
- js如何读取有访问限制的图片
- JavaScript能连续跳转页面吗?
- JavaScript中我遇到的问题
- window.open()打开一个窗口后如何禁止父窗口的操作?
- 请问access里的FIRST在SQL里怎么写?
- extjs中隐藏checkbox?
- 如何删除C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files 文件夹下的文件
- 我的想法,请教一下怎么实现!谢谢
- 请问各位大侠,关于在线WEB视频播放时的问题,在线等...
- 寻找VML的资料
- 怎么可以通过value分隔字符串全选和取消选择
- 当鼠标移动到某个地方的时候显示提示, 可是有下拉框或者listbox的地方,tip就被盖住了,好像透明的一样。有什么解决办法?
T.prototype.PublicFunc2.call(); //调用正常.
T.prototype.PublicFunc.call(); //这样调用会出错.
//alert(col.constructor);for (func in col) {
alert(typeof(col[func]));
alert(col[func]);
}输出的结果是:function------------------------------------------
Microsoft Internet Explorer
---------------------------
function() { alert('in public method 2.'); alert(this.Name); this.PublicFunc(); // 下面两行都会出错。在利用 prototype 扩展的方法里无法调用对象的私有方法,也访问不到通过 var 定义的私有成员。 // alert(x); // privateFunc();}
---------------------------
确定
---------------------------
x是一个变量,作用域仅在函数T()内部。而Name是构造函数通过this关键字创建的一个对象。
this为任何对象内建的一个隐式Object类型的变量
prototype为任何对象内建的一个显式Object类型的变量当访问对象的变量时,先在隐式变量里寻找是否有该变量,再到显式里找,带"."的赋值语句其实是给对象添加对象的简写方式,被添加的对象和原对象的私有对象有各自的作用域<SCRIPT LANGUAGE="JavaScript">
<!--function T()
{
var THIS = this;
var aa = "0";
this.aa = "1";
this.bb = function(){alert("内部公共AA:" +THIS.aa)}
this.cc = function(){alert("内部私有AA:" +aa)}
}T.prototype.aa = "2";var t = new T();alert("调用时AA:" + t.aa); t.aa = "3";alert("赋值后AA:"+t.aa);
alert("原形AA:" + T.prototype.aa);t.bb();
t.cc();//-->
</SCRIPT>
T=(function () {
function t(name){
this.Name = name;
}
var x = 5; function privateFunc() {
alert('in private method: do sometheing');
} t.prototype.PublicFunc = function() {
// 可以调用私有方法,访问私有成员变量。
privateFunc();
alert('x = ' + x);
alert(this.Name)
alert('in public method: do something else.');
}
return t
})()var a = new T('forbes');
a.PublicFunc()
</script>
T.prototype.dd = function()
{
alert("调用隐式:" + this.aa);
}t.dd();
阿信可以写一些关于下列问题的解释或者心得么?或者给一些参考。很是期待。eval, prototype, constructor, call, caller, apply ...
call和apply还是比较好用方便的,能够把function直接应用于某个object上. 其实oo在js(客户端脚本)的意义上也不是很大,我只用它为站点设一个比较好的容器