zoukankan      html  css  js  c++  java
  • 原型与原型链

    //构造函数  函数名首字母大写
    function Foo(name, age){
        //this = {}
        this.name= name;
        this.age= age;
        this.class='class-1';
        //return this //默认有这一行
    }
    var f=new Foo('liujian',20);
    //var f1=new Foo('lisi',20); //创建多个对象
    
    //扩展
    /*
     var a={} => var a = new Object() 语法糖
     var a=[] => var a = new Array() 语法糖
     function Foo(){} => var Foo = new Funtion()
       使用instanceof判断函数是否是一个变量的构造函数
      
    */
    
    //原型规则
    /* 所有引用类型(数组,函数, 对象),都具有对象特性,即可自由扩展属性(除null)
     * 所有引用类型(数组,函数, 对象),都有一个_proto_属性(隐性原型),属性值是个普通的对象
     * 所有的函数,都有一个prototype属性(显式原型),属性值也是一个普通的对象
     * 所有引用类型(数组,函数, 对象), _proto_属性指向他的构造函数的'prototype'属性值
     * 
     * *当试图得到一个引用类型的某个属性时,如果这个对象本身没有这个属性,
     * 那么会去他的_proto_(即他的构造函数的prototype)中寻找
     * 
     * */
    
    //instanceof 用于判断引用类型属于哪个构造函数的方法
    //arr instanceof Array //true
    
    //new 一个对象过程
    /* 创建一个新对象
     * this指向这个新对象
     * 执行代码,即对this赋值
     * 返回this
     * */
    //zepto 设计和源码分析
    
    
    //原型继承  jq zepto基础原理
    
    function Elem(id){
        this.elem=document.getElementById(id);
    }
    
    Elem.prototype.html=function(val){
        var elem=this.elem;
        
        if (val) {
            elem.innerHTML=val    
            return this;
        }else{
            return elem.innerHTML
        }
    }
    
    Elem.prototype.on=function(type,fn){
        var elem=this.elem;
        elem.addEventListener(type,fn,false);
        return this
    }
    
    var div1=new Elem('div1');
    div1.html('我是内容!');
    div1.on('click',function(){
        var val=div1.html()
        alert(val)
    })
  • 相关阅读:
    php--点赞功能的实现
    php --图片加图片水印
    php--获取用户ip
    json
    js中eval()和$.parseJSON()的区别
    Js操作Select大全(取值、设置选中等等)
    phpexcel--导入excel表格
    远程服务器连接
    iis 重新安装后 重新注册asp.net
    筛选两个数组中不同的元素
  • 原文地址:https://www.cnblogs.com/liujian9527/p/7338968.html
Copyright © 2011-2022 走看看