发表于: 2019-03-27 15:14:42

1 629


                                                                   今天完成事

1  构造函数的深入理解

                    

                                     深入理解 js构造函数

 js对象的创建方式

          在js中 创建对象 的方式 包含 两种  对象字面量和使用 new表达式

      

       字面量方式

          var  o1={

               p:‘i’ in object literal,

               alertp:function(){

               alert(this。p)

}                 解释:  这样,就对象字面量 创建了一个对象 o1,它具有一分成员变量  p 以及 一个 成员 方法  alertp 这种 写法 不需要 定义 构造函数 因此 不在  本人不在文本讨论范围之内 这种 写法的缺点 是  创建一个新的 对象都需要些出来完成的定义 语句  不便于  创建大量相同 类型的对象 不利于 使用 继承等 高级特性

}                  

       new表达式

       new表达式 是配合 构造函数 使用的 例如  new string 调用 内置 的string 函数 构造一个 字符串 对象 下面  我们 用 构造函数的方式    

        function co(){

                this。p=‘im’ in constrccted object;

                this.alert=gunctionZ(){

                  alert(this.p)}

}      var o2=newco();

         那么在使用 new 操作付 来调用 一分函时候 发生了什么呢   其实 很简单  就发生了 四件事:

         var obj ={}; obj。prto=co。protype  co。call、(obj) trrurn’

          解释

           第一行  创建一个 空对象 obj 

           第二行   将这个  空对象的  peoeo 成员只向 了构造函数对象的peo成员对象 这是最关键的一部 具体 此劫 将在下文描述

          第三行 将构造函数 的组哟用玉固付给辛的对象  因此 co 函数中 的this只向 新对象obj 然后 在调用从函数 于是我们就给obj 对象 赋值 了一个 成员变量p这个 成员变量的值是  i ,

in         

     

         第四行 返回新对象 obj 当构造函数 里包含返回语句视情况比较特殊 这种清凉 会在 下文中说道

                                 正确定义js构造函数

      不同于其它的主流编程 语言 js 的构造函数并不是 作为类的一个  特定 方法 存在的当人鱼一个哦普通函数yoga常见一类 对象是  他就被长长做 构造函数 活构造器 一个 函数作为一个真真的意义上多的构造好眼熟 西药满足

协力而条件

         1  在函数内部辛对象  rhis 的属性进项设置  通常 是添加 竖向和方法

         2  构造函数 可以包含返回语句  但返回值必须是 this 或者 其它非对象烈性的值

            

          上问定义的构造函数 co 就是一个标准化 简单的构造 函数 下面列子 定义的函数 cq返回了一个 对象我们乐意使用 new 表达式 来调用改表达式乐意真确的返回 一个对昂

        function c1(){ 

        var o ={ p: in} teturn o;

} var o1 =new c1(); alert( o

1.p)        但是这种方式并不是 值的推荐的方式 因为 对象 l1的原乡是函数cq内部雕工艺的对象的原圆形 也就 是object 这种大事相当一只向 

         该  同样不便于创建大量相同类型的对象 不利已使用继承等 高级特性 丙炔 容易造成混乱 应该并且

         

       一个构造函数在某些情况 下完全可以作为普通 的功能函数类使用  这是js 灵活的一个体有限  下列 定义的 c2 就是一份 多用途函数

                

        funtion c2( a,b){

        this.p=a+b;

        this.alertp=function(){

        alert(this.p); 

}  return this.p

}   var c2 =new c2( 2,3);       c2.alert

                                          对象的两种写法

1 new表达式写法

                function C2(a, b) {                       这是创建待参数的函数

                        this。 p = a + b;                   这是变量   p  等于  参数的相加

                     this.abc = function() {             这是变量abc   赋值一个函数

                             alert(p);}                           函数功能输入 变量p

                                 return p;                  这个好像没用

                        }

                var n = new C2(2, 3);                 这是创建对象 赋值

                     n.abc();                                  对象的方法输出里面的函数

                alert(C2(4,8));                            这是探矿输出  并赋值

      

2   子面量法3

           

                 var   ren= {

                              name:'小明',

                              shuiohua: function(){

                                  alert(‘我叫‘+this.p);

                               

                              }

                         }

                      ren.shuohua();

                    



返回列表 返回列表
评论

    分享到