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”; 定义。