對象之成員函數:
對象不僅只有屬性,還要有行為(函數)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script language="JavaScript" type="text/javascript">
function Person(name, age) {
//傳遞實參初始化屬性
this.name = name;
this.age = age;
// 這就是一個公開的函數,這樣的話浪費資源
this.show = function() {
document.write("名字=" + this.name + " " + "年齡=" + this.age + "<br/>");
}
this.add = function() {
var res = 0;
for(var i = 1; i <= 1000; i++) {
res += i;
}
return res;
}
}
var p1 = new Person("宋江", 90);
p1.show();
var p2 = new Person("李逵", 78);
p2.show();
document.write("res=" + p1.add());
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script language="JavaScript" type="text/javascript">
function Person(name, age) {
//傳遞實參初始化屬性
this.name = name;
this.age = age;
// 這就是一個公開的函數,這樣的話浪費資源
this.add = function() {
var res = 0;
for(var i = 1; i <= 1000; i++) {
res += i;
}
return res;
}
}
function show(){
document.write("名字=" + this.name + " " + "年齡=" + this.age + "<br/>");
}
var p1 = new Person("宋江", 90);
//函數功能傳遞
p1.abc=show;
p1.abc();
//調用二
p1.bcd=function show1(){
document.write("名字"+this.name);
}
p1.bcd();
</script>
</head>
<body>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script language="JavaScript" type="text/javascript">
function Person(){
this.name="abc";
this.age=900;
this.abc=function(v1,v2){
document.write(this.name+" "+this.age+" "+v1+" "+v2+"<br/>");
}
}
var p1=new Person();
p1.abc();
p1.abc("背景","天津");
var p2=new Person();
p2.abc();
p2.abc("南京","東京");
</script>
</head>
<body>
</body>
</html>
使用prototype去綁定一個函數給shout,直接綁定給類,不需要創建對象時創建新的函數屬性

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script language="JavaScript" type="text/javascript">
function dog() {}
var dog1 = new dog();
dog.prototype.shout = function() {
document.write("小狗" + "<br/>");
}
dog1.shout();
var dog2 = new dog();
dog2.shout();
//判定是否為同一個函數
document.write(dog1.shout == dog2.shout);
</script>
</head>
<body>
</body>
</html>
通過==符號可以判斷地址是否相等
2019.5.28
面向對象的深入學習:
函數可以作為一個屬性:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="css/game.css" type="text/css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
function jisuan(num1, num2, oper) {
if(oper == "+") {
return num1 + num2;
} else if(oper == "-") {
return num1 - num2;
} else return num1 * num2;
}
function Person(name, age, fun) {
this.name = name;
this.age = age;
this.myfun = fun;
}
var p1 = new Person("aa", 9, jisuan);
window.alert(p1.name);
window.alert(p1.myfun(89, 90, "+"));
</script>
</head>
<body>
</body>
</html>
創建對象的有一種形式:,如果一個對象比較簡單可以直接創建;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="css/game.css" type="text/css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
var dog = {
name: "小狗",
age: 8,
fun1:function(){
window.alert("hello,world!");
},
fun1:function(){
window.alert("okokok");
}
};
window.alert(dog.constructor);
window.alert(dog.name + dog.age);
dog.fun1();
</script>
</head>
<body>
</body>
</html>
類似於test.call(dog);的調用方法,調用對象實例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="css/game.css" type="text/css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
var dog = {
name: "小狗",
age: 8
};
function test(){
window.alert(this.name);
}
test();
var name="shunping";
window.test();
test.call(dog);
</script>
</head>
<body>
</body>
</html>
for in 的用法
eg:循環列舉出dog的屬性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="css/game.css" type="text/css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
var dog = {
name: "小狗",
age: 8,
sayHello:function(a,b){
window.alter("結果="+(a+b));
}
};
for(var key in dog){
window.alert(dog[key]);
}
</script>
</head>
<body>
</body>
</html>
遍歷window的屬性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="css/game.css" type="text/css" rel="stylesheet" />
<script language="JavaScript" type="text/javascript">
for(var key in window){
document.write(key+":"+window[key]+"<br/>");
}
</script>
</head>
<body>
</body>
</html>
