zoukankan      html  css  js  c++  java
  • js prototype

    1.获取、添加、修改对象的属性。

    function person(){
        this.age = 10;
        this.height = 11;
    }
    var perA = new person();
    person.prototype.sex = "男";
    console.log(perA.sex);  //男
    //只有对象才有prototype属性,实例perA是没有prototype的。
    

    2.扩展原型。

    String.prototype.replaceAll = function(str,str1){
        return this.replace(new RegExp(str,'gm'),str1);
    }
    var d = "2";
    console.log("323232323".replaceAll(d,"")); //33333
    //上面实现了对js String的扩展,实现了replaceALl方法,当然有也可以扩展自己的函数。
    var test = function(){
        this.a = "233";
    }
    test.prototype.sayStr = function(){
        alert(this.a);
    }
    var test1 = new test();
    test1.sayStr();
    //这种用法对自己封装插件很有用。

    3.特殊用法

    //当我们把一个对象赋值到另一个prototype上会怎样呢?
    var a = function(){
        this.b = 1;
    }
    var x = function(){
        this.y = 2;
        this.b = 2;
    }
    a.prototype = new x();
    var z = new a();
    console.log(z.y); //2
    //上面说明这样做a对象会得到x对象的方法和属性。那么如果a和x对象有同样的属性会怎样呢?
    console.log(z.b); //1
    //可以看出,js会首先到a对象(自己)本身属性上找,找到了即输出,没找到,才会到b对象的属性里面找。
    

    最后可以关注我的个人公众号,学习更多相关知识,程序员们都在这里,你又在哪里呢?
    这里写图片描述

  • 相关阅读:
    用word2010发个blog
    停止调试无法关闭控制台
    D11.5.8,Lingo中不支持AS3的ExternalInterface接口
    Lingo03 通用脚本和自定义handler
    Lingo01 术语
    Lingo09 Sprite
    Lingo动态创建script member
    tut11脚本基础
    诡异失败的导入对话框
    Lingo3D01 3D Cast Member的组成
  • 原文地址:https://www.cnblogs.com/zhujieblog/p/12816881.html
Copyright © 2011-2022 走看看