找個地方記錄坑

2021-09-27 13:22:25 字數 4437 閱讀 5511

一、字面量{}或new方式建立物件

//字面量

var obj =

}//new關鍵字建立物件

var obj =

newobject()

; obj.sname =

"lce"

; obj.

eat=

function()

//字面量建立物件 或 new object() 建立物件

//缺點 : 建立多個同類物件時 **會重複

//建立多個同類物件時,**會重複 此種方案只適用於一次建立乙個物件

var stu1 =

}//alert( stuobj.study() );

var stu2 =

newobject()

; stu2.name =

"lily"

; stu2.

study

=function()

var stu3 =

newobject()

; stu3.name =

"lily"

; stu3.

study

=function()

工廠模式

//工廠模式好處 :解決了多個同類物件建立時 **重複的問題

//工廠模式缺點 :1--一般物件都是通過new關鍵字建立的 而工廠模式建立的物件只是通過函式呼叫得來的 物件建立方式不規範

// 2-- 不能確定某個物件屬於哪乙個建構函式

//instanceof 判斷乙個物件是否屬於某乙個類 返回布林值

//用法 : 物件 instanceof 建構函式

function

students

(name,tel)

//建立乙個學生

var stu1 =

students

("小八",20

);console.

log( stu1 instanceof

object

)

建構函式寫法(例項寫法)

//建構函式特點 : 為了和普通函式區分  建構函式的命名方式一般是大駝峰

// 建構函式中的this 指向建構函式new出來的物件

// 建構函式中的屬性 叫做 例項屬性 方法叫做 例項方法

//建構函式優點 : 通過new關鍵字建立物件 物件建立規範

// 可以確定某個物件屬於哪乙個類

//建構函式的缺點 : 多個同類物件建立時 方法會被重建 空間不共享

function

animal

(name,age)

}function

student

(name,tel)

var stu1 =

newstudent

("jack"

,"13233333333");

//第乙個物件

var a1 =

newanimal

("二哈",3

);//alert( a1.sleep() );

//第二個物件

var a2 =

newanimal

("二黑",2

);//alert( a2.sleep() );

//確定 stu1 和 a1 不屬於同一類

console.

log( stu1 instanceof

student);

//true

console.

log( a1 instanceof

student);

//false

//物件a1和a2都屬於animal類 具有共同的方法 sleep

alert

( a2.sleep == a1.sleep )

;

原型寫法

//原型 : 將屬性和方法寫在建構函式的外面

// 原型優點 : 多個同類物件建立時 方法不會被重建 空間共享

//原型缺點 : 屬性值都相同

function

animal()

animal.prototype.name =

"二哈"

;//原型屬性

animal.prototype.

sleep

=function()

var a1 =

newanimal()

;var a2 =

newanimal()

; console.

log( a1.name , a1.

sleep()

);console.

log( a2.name , a2.

sleep()

);console.

log( a1.sleep == a2.sleep )

;

混合寫法

//混合 :屬性寫成 例項屬性 

// 方法寫成 原型方法

function

animal

(name,age)

animal.prototype.

sleep

=function()

var a1 =

newanimal

("二哈",3

);var a2 =

newanimal

("二黑",3

);

原型上寫乙個陣列去重

array.prototype.

norepeat

=function()

}return brr;

}var arr =

newarray(1

,2,3

,4,4

,4,4

);//原陣列

console.

log( arr.

norepeat()

);

原型物件 prototype

1. 所有的建構函式都有乙個prototype屬性,這個屬性就叫做原型物件

2. 所有的建構函式new出來的物件都有乙個原型物件 實現 : 物件.__proto__

3. 建構函式.prototype === 例項物件.__proto__ 叫做原型物件

4. 在原型物件上建立的方法是共享的。

原型模式的執行流程

首先在例項上查詢,如果有例項屬性或方法  就返回   ,如果沒有,就去原型上查詢 如果有就返回 

如果原型上沒有對應的屬性或方法,就去最外層的object.prototype上查詢 如果有就返回,沒有返回undefined

原型中的關鍵字

function

animal()

animal.prototype.name =

"lixin"

var animal =

newanimal()

; console.

log(animal.prototype.

isprototypeof

(animal)

) console.

log(animal instanceof

animal

) console.

log(animal.

hasownproperty

("name"))

console.

log(

"name"

in animal)

/*console.log(animal.__proto__.__proto__.name)

測試某個物件是否屬於某個類的方法 isprototypeof()

語法: 建構函式.prototype.isprototypeof(物件): 判斷乙個物件是否指向了該建構函式的原型物件,

可以使用isprototypeof() 方法來測試 結果為boolean型別 同 instanceof

delete: 刪除例項屬性

語法: delete 物件.例項屬性

hasownproperty() 是否包含該例項屬性, 包含返回true, 否則返回false

語法: 例項物件.hasownproperty("例項屬性") in 是否存在該屬性( 原型或例項中)

語法: "屬性" in 物件例項*/

找個地方記錄坑

1 需要乙個ajax物件 xmlhttprequest 2 建立和伺服器的連線 通過 open 方法 三個引數 第乙個引數 請求資料的方式 get post get和post區別 get 路徑傳值 資料量小 post 非路徑傳值 資料量大 第二個引數 路徑 url 第三個引數 非同步true 同步f...

找個地方記錄坑

doctype html utf 8 title head 兄弟多個1 li 兄弟多個2 li 兄弟多個3 li 兄弟多個4 li 兄弟多個5 li 兄弟多個6 li ul body html 確定建構函式 特效名稱 確定建構函式的屬性 要操作的元素 確定建構函式的方法 特效中的具體功能實現 變色 ...

好吧,只好找個自己High的地方

最近混了幾天知乎,因為說王垠的文章是辣雞,結果被封了一天。一看大談社會責任之類的,就把這個文章歸類於 辣雞。乙個偉大的公司,應該為社會創造實在的,新的價值,而不是想方設法 節省 什麼勞動力開銷,讓人失業!想一下都覺得可怕,我創造乙個公司,它最大的貢獻就是讓成千上萬的人失業,為貪得無厭的人節省 勞動力...