JavaScript物件導向學習筆記

來源:互聯網
上載者:User

標籤:for   object   方法   --   comm   組成   zhang   迴圈   實現   

物件導向:
變數和屬性一樣的。
屬性:屬於一個對象
變數:屬於任何一個人
函數:
方法:屬於一個對象
痛點:
this:當前的方法屬於誰,this就是誰的
例子
window.show = function(){
alert(this);
}
//this是window
function show(){
alert(this);
}
Object:用來實現對象
var obj = new Object();
例子:
var obj = new Object();
obj.name = "zhaobw";
obj.age = "12";
obj.showName = function(){
alert("我的名字:"+this.name);
}
obj.age = function(){
alert("我的年齡:"+this.age);
}
/*
*缺點:如果多個對象就會很麻煩
*/
改進:
模式:原廠模式
缺點:
(1)沒有new
(2)函數不能共用
a.showname != b.shwoname
function createPerson(name,age)//建構函式
{
//原料
var obj = new Object();
//加工
obj.name = name;
obj.age = age;
obj.showName = function(){
alert("我的名字:"+this.name);
};
obj.age = function(){
alert("我的年齡:"+this.age);
};
//出廠
return obj;
}
var a = createPerson(‘zhaobw‘,‘12‘);
var b = createPerson(‘zhangsan‘,‘18‘);
在函數前加了new
系統會自動執行:
(1)var this = new object();
(2)return this;
改進:解決new
function createPerson(name,age)//建構函式
{
this.name = name;
this.age = age;
this.showName = function(){
alert("我的名字:"+this.name);
};
this.age = function(){
alert("我的年齡:"+this.age);
};
}
var a = new createPerson(‘zhaobw‘,‘12‘);
原型:
改進:解決函數共用的問題
(1)prototype給一組對象添加方法。
(2)解決函數共用了。
-------------------------------------------
function asd(){//建構函式
//不一樣的部分放在建構函式
}
asd.prototype.show = funcrion(){
//一樣的部分放在原型裡
}
--------------------------------------------
json寫對象
json裡可以放數字,字串,對象,函數
特點:簡單
適用範圍:整個程式只有一個對象
--------------------------------------------
命名空間:可以讓多個名字相同的函數存在
例
var zns = {};
zns.common = {};
zns.fs = {};
zns.site = {};
zns.common.getUser = function(){
alert("a");
};
zns.fs.getUser = function(){
alert("a");
};
---------------------------------------------
繼承
對象有屬性和方法組成
call可以改變函數執行的this
可以通過call來完成繼承屬性
方法繼承:
for(var i in A.prototype) {
B.prototype[i] = A.prototype[i];
}
*引用*
var arr1 = [1,2,3,4]
var arr2 =arr1;
arr1和arr2引用同一塊空間
改變arr1時arr2也會發生變化
避免引用:迴圈一遍就好

 

JavaScript物件導向學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.