JAvascript単純オブジェクト作成
3030 ワード
javascriptで関数を定義することはクラスを定義することに相当するので、もちろんこのクラスのオブジェクトを作成することができます.
Javaとjavascriptは根本的に2つのものですが、このコードはよく理解できるはずです.
まずPersonクラスを定義し、クラスの属性を定義する方法は非常に簡単で、thisで直接定義することができますが、thisで定義する必要はありません.どのような結果になりますか?クラスに変数sexを追加し、「male」に値を割り当てます.
出力コードは次のとおりです.
実行結果:
undefinedとして表示されますが、定義されていないのは、thisで属性を定義していないためです.単純に変数を定義するだけでは、ローカル変数であり、クラスの属性ではないことがわかります.同じように、クラスで関数を勝手に定義しても、直接使用することはできません.例えば、
コードを追加:
p 1まで実行する.sayの場合、エラーが発生します.
変数については解決しましたが、メソッドはオブジェクトを直接呼び出すことができますか?
方法は簡単です.やはりthisを利用します.
Personのsayプロパティがfunctionを指すことを定義すると、関数の呼び出しに成功します.
<!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は根本的に2つのものですが、このコードはよく理解できるはずです.
まず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();
p 1まで実行する.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を指すことを定義すると、関数の呼び出しに成功します.