javascript 定义对象、方法和属性的使用方法(prototype)

js 专栏收录该内容
14 篇文章 0 订阅

prototype

定义和用法
prototype 属性使您有能力向对象添加属性和方法。

语法

object.prototype = {
    函数名 : function(){}
}
object.prototype.name=value

javaScript的中类和对象

  1. 定义类

    1//第一种定义方式
    var people = function(name){
        this.name = name;
        this.say = function(msg){
            alert(this.name + " say : " +msg);
        }
    }
    //第二种定义方式
    function people(name) {
        this.name = name;
        this.init = function(msg){
            alert(this.name + " say : " +msg);;
        }
    }
    //调用
    var people = new people("I");
    people.init("hello");//输出:I say hello
    
    //定义静态方法,接例1
    people.says = function(msg){
        alert(this.name + " say : " +msg);
    }
    people.aa = "aa";
    //调用
    people.inits("hellos");//I say Hellos   
    alert(people.aa);//aa
    //这种定义方式无法使用map的调用方式,不懂
  2. 定义对象,调用时使用对象.方法或者和java调用map的方式一样对象['方法名'](args)

    2//定义对象
    var people = {
        run : function(){
            alert("I can run");
        }   
    };
    //调用
    people.run();//输出 I can run
    people['run']();//同上
  3. 以上两种方式不能同时使用

Javascript的方法可以分为三类

  1. 类方法,如例1
  2. 对象方法,如例2
  3. 原型方法,prototype

    3//定义类
    var people = function(name){
        this.name = name;
    }
    //原型方法
    people.prototype = {
        introduceChinese : function(){
            alert(this.people +"的名字是"+this.name);
        }
        people;
    };
    
    //测试
    
    var p1=new people("Windking");
    p1.people = '谁';
    p1.IntroduceChinese(); 

总结:

  1. javaScript创建对象就是定义函数
  2. javaScript对象定义方法和属性有三种方式

    • 在函数内部定义方法和属性,类似java的定义,如例1
    • 使用函数名.prototype定义方法和属性,例3
    • 使用对象定义方法和属性
  3. 使用prototype定义属性时,要放在定义方法的后面,不然属性会是undefined

  4. 使用javascript定义属性,不像java那么严谨,在实例经对象后,也可以定义属性
  5. 使用prototype和函数内部定义方法和属性,其作用是一样的,都需要实例化函数后才可使用
  6. 直接使用函数名定义方法和属性,类似java的静态该当和变量,如:
   function scriptBean(){}
   //定义方法
   scriptBean.sayHello = function(msg){
    console.log(this.name + " say : " +msg);
   }
   //定义属性
   scriptBean.name = "scriptBean";
   //调用
   scriptBean.sayHello("hello");
  • 0
    点赞
  • 15
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值