javascript 对象都是由 Object “继承”来的, js语言为我们提供了一系列的内置“类”, 如Function, Array 等
其中Function又分为普通函数和构造函数两种。
使用 new 构造函数();的语法可以创建一个Object对象。
<html> <head> <script language="javascript"> // 先定义一个类, 一个Person类, 表示一个人 function setName(new_name) { this.name = new_name; } function Person() { this.myname = "zhangyu"; // 定义成员变量 // 如果使用var myname = "zhangyu"; 则在new 对象后使用myname时获得undefined this.myage = 21; // 定义成员变量 this.setName_1 = function (new_name) // 定义成员函数, 括号中放置的是参数,此种定义方式每个Person对象都会有一个方法(比较占用内存) { this.myname = new_name; } this.setName_2 = setName; // 这样定义的成员函数所有的对象共享一个函数,节省内存, 但是这样不便于理解 } function sayHello() { var p = new Person(); window.alert(p.myname); p.setName_1("Qiaohuanhuan"); window.alert(p.myname); p.setName("Zhangyu"); window.alert(p.myname); } </script> </head> <body onload="sayHello()"> <p class="mystyle"> 这是一行文字 </body> <html> |
一点小理解: javascript中所有的对象都是Object对象的实例, var my_obj = new MyObj(); 实际上是使用 function MyObj(){} 作为构造函数创建一个对象, 因此, 在函数中使用 var name = “zhangyu”; 的函数创建出来的对象没有name属性, 而对象的属性应该使用 this.name = “zhangyu”; 定义。