`

函数中定义 var self = this 的作用

 
阅读更多

function Class1(){

            //self(self被附加到了对象上) self只对私有成员可见(能.点出来 i aa() .点不出来public_dd())
            var self = this;
            this.i = 1;
            this.aa = function(){
                this.i ++;
                alert(this.i);
            }
            var private_bb = function(){
                alert(self.i);
                //self.public_dd();//错误 self无法从外部访问,同时self也无法被这个对象的公共方法所访问
                //aa();//错误  私有方法要通过self调用
                public_dd();//可以直接调用 不能用self.public_dd();
                self.aa();
            }
            this.cc = function(){
                private_bb();//私有函数
            }
            
            //可以直接调用
            //  对象的公共方法
            function public_dd()
            {
                self.aa();
                alert("dd");
            }
        }

 var o = new Class1();//调用Class1构造函数不运行++(初始化没有调用不运行)
 o.cc();//运行++
 document.write(o.i);//return 2

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var self = this //指代函数内部的执行环境
在函数Class1中通过 this.方式定义的属性和方法,能被实例o直接访问和调用,其他的属性和方法则是函数Class1的私有属性和方法,只能被内部访问和调用,通过self.或this.方式.
分享到:
评论

相关推荐

    解决vue的变量在settimeout内部效果失效的问题

    1、定义一个self暂存this 2、再改变变量的值,则生效啦 var self=this; this.toastrVal = inVal; this.loadState = true; this.noBg = bgState; setTimeout(function () { self.loadState = false; }, 3000)...

    elegant.def:优雅的定义javascript函数

    优雅的定义javascript函数 用法 使用this var index = def ( function index ( ) { /** * @rule (Array arr [, Int num]) -> * */ return this . arr [ this . num ] ; } ) ; index ( [ 1 , 2 , 3 ] , 1 ) ==...

    javascript函数的解释

    17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window...

    javascript定义类和类的实现实例详解

    本文实例讲述了javascript定义类和类的实现。分享给大家供大家参考,具体如下: 最近在几个群上经常看到有人问... var _self = this;//把本身引用负值到一变量上 var _Field = "Test Field"; //私有字段 var private

    Javascript 类与静态类的实现

    析构函数 我们直接看一个例子: 类例子 代码如下: /***定义类***/ var Class = function(){ var _self = this;//把本身引用负值到一变量上 var _Field = “Test Field”; //私有字段 var privateMethod = function...

    DX1.5 手机正式版

    /*将cookie中加上了前缀的数据 去掉前缀存在$this->var['cookie']数组中*/ $prelength = strlen($this->config['cookie']['cookiepre']); foreach($_COOKIE as $key => $val) { if(substr($key, 0, $prelength) == $...

    107个常用javascript语句

    17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window...

    Node.js的DAO框架bearcat-dao.zip

     var self = this;  this.simpleDao.transaction(txStatus).addPerson(['aaa'], function(err, results) {  if (err) {  return cb(err); // if err occur, rollback will be emited  } ...

    ASP.NET常用代码

    /// 定义了4个日志记录方法 (error, warning, info, trace) /// /// public class ApplicationLog { /// /// 将错误信息记录到Win2000/NT事件日志中 /// <param name="message">需要记录的文本信息 /// public ...

    jQuery详细教程

    您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中: $(document).ready(function(){ --- jQuery functions go here ---- }); 这是为了防止文档在完全加载(就绪)之前运行 jQuery...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。 算术和字符 以下只有一种...

Global site tag (gtag.js) - Google Analytics