易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript中this

 下面都是个人理解以及查找的网上的资料,如有不对的地方请指正
This
this 始终指向调用它的对象 ,都没有对象调用时就指向window
另外就是this一般都是在function中,当不在function中的时候  一定是指向window的.
var a ='a';
alert(this.a); //出来的是a
alert(this.b); //undefined 因为还没定义
var b= 'b';
alert(this.b); //出来的是b 所有的全局变量都是window的属性
当在function中的时候,如果没有对象调用它还是指向window的
var a ='a';
function test(){
alert(this.a)
}
test();
有人觉得this是根据上下文来确定的,反正我不明白这是什么意思  只要抓住一点 有没有对象调用它就好了,不管这个this隐藏的有深
 var a ='a';
function test(){
(function(){
(function(){
(function(){
alert(this.a); //这个this隐藏的够深了吧 但是没有对象调用 还是指向window
})();
})();
})()
}
test();
在function中  当有对象调用这个function的时候  this就指向这个对象了......
 var vv = "wo bu shi vv";
function text(){
alert(this.vv)
};
var obj = {
vv : "vv",
say :text
};
text(); //可以看到 没有对象调用 指向的是window
obj.say();//say引用的text 有对象调用(obj) this指向的是obj
在js中有一个神奇的方法,他就是call,apply他可以改变this 的指向;
 var text = {
name : "we are good",
say : function(){
alert(this.name);
}
}
var pest ={
name : "we are pest"
}//可以看到pest没有say这个方法
text.say.call(pest);//可以看到alert出来的是we are pest
text.say.apply(pest);
还有一中情况就是类了, js中的类就是function吗,当new一个function的时候就会生成一个对象(也不一定啊 当在某些情况下还会是function  如构造类 现在我说的是基本的)  this 就指向这个对象了
 function perseon(name){
this.name = name;
this.say = function(){
alert(this.name)
}
}
var wt = new perseon('wt');
wt.say(); //指向的wt
var taozi = new perseon('taozi');
taozi.say();//指向的taozi
以上都是针对js语言来说明的  所说的对象也是原生(Native)对象
另外还有宿主(Host)对象  如dom元素
但是原理还是一样 如果是元素的方法调用的函数 函数里面的th


相关文档:

javascript子页面刷新父页面

前台页面为 子页面为一个按钮:
<form id="form1" runat="server">
    <div>
        <asp:Button runat="server" ID="Bt_Add" Text="添加" Width="80px" Height="20px" OnClick="Bt_Add_Click" />
    </div>
  ......

javascript运行、调试工具

      最近在学习javascript,对于如何运行调试却不了解。以为在记事本中编辑好文件后保存为htm文件,然后在浏览器中打开就可以了,但我试了多次都不成功,后来终于发现原来我在记事本中编辑保存的文件的后缀名为“.txt”。
     解决方法:“文件夹选项&rdqu ......

进一步理解javascript对象、数组和哈希表

在javascript中,对象实际上就是一个哈希表,比如下面这个user对象:
function user(n, a)
{
this.name = n;
this.age = a;
this.toString = function() {
return "Name:" + this.name + ", Age:" + this.age;
}
}
var u = new user("tom", 18);
for (var k in u) {
alert('key: ' ......

关于javascript内存泄露

<html>
<body>
<script type="text/JScript">
for (i=0; i<10000; i++) {    // this loop enforces the effect
    var model = new Object();
    var element = document.createElement("<br>");
    model.myElement = ......

JavaScript sprintf

Return a formatted string
function sprintf ( ) {
// Return a formatted string
//
// version: 909.322
// discuss at: http://phpjs.org/functions/sprintf // + original by: Ash Searle (http://hexmen.com/blog/)
// + namespaced by: Michael White (http://getsprink.com)
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号