javascript基礎(this,工廠方法來建立物件,建構函式建立物件)(十六)
1.this詳解:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//建立一個變數name
var name = "全域性中的name";
/*
* 每次呼叫函式時,瀏覽器都會將一個物件作為隱藏的引數傳遞進函式
* 這個物件就是函式執行的 上下文物件,我們可以通過this來引用該物件
* 根據函式的呼叫的形式不同,this的值也不同:
* 1.以函式的形式呼叫時,this永遠都是window
* 2.以方法的形式呼叫時,誰呼叫this就是誰
*/
//建立一個函式
function fun(){
/*
* 我們希望誰呼叫的函式,就可以輸出誰的name屬性
* window呼叫時,就輸出window.name
* obj 呼叫時 就輸出 obj.name
* obj2 呼叫時 就輸出 obj2.name
*/
console.log(this.name);
//console.log(this == obj);
}
//建立一個物件
var obj = new Object();
obj.name = "孫悟空";
obj.sayName = fun;
//建立一個物件
var obj2 = new Object();
obj2.name = "豬八戒";
obj2.sayName = fun;
//console.log(obj.sayName == fun);
//window.fun();
//obj.sayName();
//obj2.sayName();
//obj.sayName();
//fun();
//obj.sayName();
//fun();
//window.fun();
//obj2.sayName();
var obj3 = {
name:"沙和尚",
age:38,
sayName:function(){
function test(){
console.log(this.name);
}
test();
}
};
obj3.sayName();
</script>
</head>
<body>
</body>
</html>
2.工廠方法來建立物件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 建立一個物件,來表示一個人的資訊
*/
/*var person = {
name:"孫悟空",
age:18,
gender:"男",
address:"花果山"
};
var person2 = {
name:"白骨精",
age:16,
gender:"女",
address:"白骨洞"
};
var person3 = {
name:"蜘蛛精",
age:15,
gender:"女",
address:"盤絲洞"
};*/
/*
* 使用工廠方法來建立物件
*/
function createPerson(name , age , gender , address){
//建立一個物件
var obj = new Object();
//向物件中新增屬性
obj.name = name;
obj.age = age;
obj.gender = gender;
obj.address = address;
obj.sayName = function(){
console.log("大家好,我是:"+this.name);
};
//將物件返回
return obj;
}
//呼叫函式
var person = createPerson("孫悟空",18,"男","花果山");
var person2 = createPerson("白骨精",16,"女","白骨洞");
var person3 = createPerson("蜘蛛精",14,"女","盤絲洞");
//console.log(person);
function createDog(name , age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayHello = function(){
console.log("汪汪");
};
return obj;
}
//person3.sayName();
//建立狗的物件
var dog = createDog("旺財",6);
// console.log(person);
// console.log(dog);
</script>
</head>
<body>
</body>
</html>
3.建構函式建立物件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 建構函式(constructor)
* 建構函式是專門用來建立物件的函式
* 建構函式就是一個普通的函式,不同的是建構函式需要通過new關鍵字來呼叫
* 建構函式一般都是首字母大寫
*
* 建構函式的執行的流程:
* 1.建立一個新的物件
* 2.將新建立的物件設定為函式中的this
* 3.逐行執行函式
* 4.將新建的物件作為返回值返回
*
* 如果以建構函式的形式呼叫,this就是新建立的那個物件
*
* 建構函式我們也可以稱它為一個類,
* 使用同一個建構函式建立的物件,我們稱為一類物件
* 通過建構函式建立的物件,我們稱這個物件是該類的例項
*
*/
//建立一個人類的建構函式
function Person(name , age){
//通過this,向新物件中新增屬性
this.name = name;
this.age = age;
this.sayName = function(){
console.log(this.name);
};
}
function Dog(){
}
var p = new Person("孫悟空",18);
var person2 = new Person("沙和尚",38);
var dog = new Dog();
//console.log(person);
//person2.sayName();
var a = new Person();
var b = new Dog();
/*
* instanceof
* - 可以檢查一個物件是否是一個類(建構函式)的例項
* - 語法:物件 instanceof 建構函式
*/
//console.log(b instanceof Person);
/*
* 所有的物件都是Object的後代
*/
//console.log(a instanceof Object);
</script>
</head>
<body>
</body>
</html>
相關文章
- 工廠模式建立物件和自定義建構函式建立物件的異同模式物件函式
- 建構函式建立物件函式物件
- 工廠方法、建構函式、原型物件——JS基礎學習筆記(四)函式原型物件JS筆記
- JavaScript建立物件(一)——工廠模式JavaScript物件模式
- JavaScript 基礎(二) – 建立 function 物件的方法, String物件, Array物件JavaScriptFunction物件
- 私有建構函式的物件建立例項函式物件
- javascript:建構函式模式(為什麼這種方式也可以建立物件)JavaScript函式模式物件
- 建立派生類物件,建構函式的執行順序物件函式
- 【Python設計模式】03 工廠模式:建立建立物件的工廠Python設計模式物件
- 【譯】JavaScript 工廠函式 vs 建構函式JavaScript函式
- 工廠模式-將物件的建立封裝起來模式物件封裝
- JavaScript建立物件的多種方法JavaScript物件
- 《JavaScript物件導向精要》之四:建構函式和原型物件JavaScript物件函式原型
- Abstract Factory(抽象工廠)——物件建立型模式抽象物件模式
- JavaScript物件與建立物件的方式JavaScript物件
- JavaScript建立物件方法例項小結JavaScript物件
- JavaScript建構函式,物件導向程式設計JavaScript函式物件程式設計
- Golang建立建構函式的方法詳解Golang函式
- JavaScript 建立物件的方式JavaScript物件
- javascript使用new建立物件JavaScript物件
- JavaScript物件導向之二(建構函式繼承)JavaScript物件函式繼承
- 01 #### `__new__` ,構造方法,建立物件構造方法物件
- 理清原型物件、 例項物件、建構函式原型物件函式
- JavaScript物件導向—物件的建立和操作JavaScript物件
- JavaScript 函式引數解構物件JavaScript函式物件
- PHP 建立鏈式物件PHP物件
- js建立物件的方法JS物件
- JS基礎難點總結(函式作用域,變數提升,物件,建構函式,this)全!!!JS函式變數物件
- JavaScript建立物件(三)——原型模式JavaScript物件原型模式
- 談談JavaScript中建立物件(Object)JavaScript物件Object
- 建構函式方式建立正規表示式函式
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- JS中建立物件的方法JS物件
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- 前端筆記之JavaScript物件導向(二)內建建構函式&相關方法|屬性|運算子&繼承&物件導向前端筆記JavaScript物件函式繼承
- 建立型模式:工廠方法模式
- JavaScript 表單、物件、函式JavaScript物件函式
- JS 基礎篇(一):建立物件的四種方式JS物件
- 輕鬆理解建構函式和原型物件函式原型物件