zoukankan      html  css  js  c++  java
  • js 函数名的赋值

    函数是对象,Function出来的实例对象,函数名保存的是地址,指向的是函数值,引用类型,当比较的时候是比较的地址是否相同,赋值的时候是重新分配一个地址,指向一个函数对象!

    1.会覆盖的情况:  

    var a={
                name:"sun",
                age:"18",
                show:function(){
                    alert(this.name);
                }
            };
            a.show();//"sun"
            var b=a;
            b.show=function(){
                alert(this.age);
            };//覆盖同一个show方法
            b.show(); //18
            a.show(); //18
    

    function a(){ alert("a"); } var b=a; b=function(){ alert("b"); } a();//"a",b赋值的时候,是重新生成一个地址,和a没有关系

    2.不会覆盖的:

    function AA(){
                this.name="小明";
                this.arr=[1,2.3];
            }
            AA.prototype.new=function(){}
            var aa=new AA();
            aa.name="xiaoMing";
            var bb=new AA();
            alert(bb.name);//还是"小明",不同的地址,相同的对象值
    function A(){
                this.name = 'wangmeijian';
                this.age = 23;
            }
            A.prototype.showname = function(){
                alert( this.name )
            };
    
            function B(){
                A.call(this)
            }
    
            var a = new A();
    
            B.prototype = a;
    
            B.prototype.showname=function()
            {
                alert(this.age)
            };//这个地方的赋值,是给B的原型加一个属性,保存一个函数的地址,并不会改变A下面的showname
            //当B.prototype=a;时,B.prototype.showname=a.showname,给a对象直接加了一个属性,保存一个函数的地址;其实这个时候A.prototype.showname应该还是存在的,没有改变。
            //a.showname(); //wangmeijian
            var b = new B();
            //b.showname(); //23
            alert(A.prototype.showname);/*function(){
                alert( this.name )
            }*/
            alert(a.showname);/*function()
            {
                alert(this.age)
            }*/
    

      

     

      

  • 相关阅读:
    兼容Android 和 ios JavaScript copy paste
    hello-循环神经网络(RNN)原理
    236. Lowest Common Ancestor of a Binary Tree
    Tensorflow 之模型内容可视化
    CUDA,cudnn一些常见版本问题
    MongoDB国内学术研究(部分)
    Unsupported major.minor version 52.0
    WebService的两种方式SOAP和REST比较
    廖雪峰老师的git在线教程
    MAVEN ERROR : Dynamic Web Module 3.0 requires Java 1.6 or newer
  • 原文地址:https://www.cnblogs.com/zifeiyu/p/3670562.html
Copyright © 2011-2022 走看看