zoukankan      html  css  js  c++  java
  • javascript简单对象创建

    由于javascript中定义了一个函数就相当于定义了一个类,我们当然可以创建一个这个类的对象。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> New Document </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
    <script type="text/javascript">
    function Person(name,age)
    {
    	//定义了一个Person属性name
    	this.name = name;
    	//定义了一个Person属性age
    	this.age  = age;
    	//定义了一个Person属性address
    	this.address = "harbin";
    }
    //创建了一个对象p1是Person对象
    var p1 = new Person("maybe",21);
    alert(p1.name+","+p1.address);
    
    var p2 = new Person("gossip",21);
    p2.address = "shanghai";
    alert(p2.name+","+p2.address);
    </script>
     </head>
     <body>
     </body>
    </html>
    

    虽然java和javascript根本是两种东西,但这段代码应该很好理解。

    首先定义了一个Person类,定义类的属性的方法非常简单,直接用this就可以定义,但是不用this去定义,会出现什么后果呢?我们在类添加一个变量sex,赋值为"male"。

    function Person(name,age)
    {
    	//定义了一个Person属性name
    	this.name = name;
    	//定义了一个Person属性age
    	this.age  = age;
    	//定义了一个Person属性address
    	this.address = "harbin";
    
    	var sex="male";
    }

    输出代码如下:

    alert(p1.name+","+p1.address+","+p1.sex);


    运行结果:


    显示为undefined,未定义的原因是我们并没有用this来定义属性,如果只是简单的定义一个变量,那么它只是一个局部变量,并不是一个类的属性,这一点要弄明白。同理我们在类里随便定义函数,也是不能直接用的,比如:

    function Person(name,age)
    {
    	//定义了一个Person属性name
    	this.name = name;
    	//定义了一个Person属性age
    	this.age  = age;
    	//定义了一个Person属性address
    	this.address = "harbin";
    
    	var sex="male";
    
    	function say()
    	{
    		alert("saying");
    	}
    }


    添加代码:

    var p1 = new Person("maybe",21);
    alert(p1.name+","+p1.address+","+p1.sex);
    p1.say();


    当运行到p1.say时,会出现错误:

    对于变量我们已经解决了,那么方法怎么可以直接通过对象调用呢?

    方法很简单。还是利用this:

    function Person(name,age)
    {
    	//定义了一个Person属性name
    	this.name = name;
    	//定义了一个Person属性age
    	this.age  = age;
    	//定义了一个Person属性address
    	this.address = "harbin";
    
    	var sex="male";
    
    	this.say = function()
    	{
    		alert("saying");
    	}
    }


    定义一个Person的say属性指向function,这样就能成功调用函数了。


  • 相关阅读:
    linux umask使用详解
    Linux 解压压缩命令
    linux命令:tail 命令
    linux命令:head 命令
    linux下cat命令详解
    linux命令:rm 命令
    linux命令:mv命令
    Linux 的cp命令
    文件权限详解
    Linux ls命令参数详解
  • 原文地址:https://www.cnblogs.com/james1207/p/3322903.html
Copyright © 2011-2022 走看看