前端知識(shí)點(diǎn):
一蕴忆、創(chuàng)建對(duì)象的方式
工廠模式颤芬、構(gòu)造函數(shù)模式、原型模式套鹅、組合使用構(gòu)造函數(shù)模式和原型模式驻襟、動(dòng)態(tài)原型模式、寄生構(gòu)造函數(shù)模式芋哭、穩(wěn)妥構(gòu)造函數(shù)模式、
1.工廠模式
function createPerson(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name)
}
return o;
}
var person1 = createPerson(‘Hj’,24,‘Teacher’);
2.構(gòu)造函數(shù)模式
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name)
}
}
var person1 = new Person(‘Hj’,24,‘Teacher’);
3.原型模式
function Person(){ }
Person.prototype = {
constructor: Person,
name:‘Hj’,
age: 24,
job:’Teacher’,
sayName: function(){
alert(this.name)
}
}
組合使用構(gòu)造函數(shù)模式和原型模式(使用最廣泛郁副、認(rèn)同度最高)
function Person(name,age){
this.name = name;
this.age = age;
}?
Person.prototype = {
constructor: Person,
sayName: function(){
alert(this.name)
}
}
4.動(dòng)態(tài)原型模式
function Person(name,age){
this.name = name;
this.age = age;
}?
if? (typeof this.sayName !=“function”){
Person.prototype.sayName = function(){
alert(this.name)
}
}
5.寄生構(gòu)造函數(shù)模式
function Person(name,age,job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name)
}
return o;
}
var person1 = new Person(‘Hj’,24,‘Teacher’);
6.穩(wěn)妥構(gòu)造函數(shù)模式
function Person(name,age,job){
var o = new Object();
//在這里定義私有變量和函數(shù)
o.sayName = function(){
alert(this.name)
}
return o;
}
除了調(diào)用sayName()方法外减牺,沒(méi)有別的方式訪問(wèn)對(duì)象的數(shù)據(jù)
二、繼承
原型鏈、借用構(gòu)造函數(shù)拔疚、組合繼承肥隆、原型式繼承、寄生式繼承稚失、寄生組合式繼承
1.原型鏈
2.子類原型指向父類的實(shí)例對(duì)象
SubType.prototype = new SuperType();
3.借用構(gòu)造函數(shù)
function SubType(){
//繼承了SuperType
SuperType.call(this);
}
4.組合繼承(最常用的繼承模式)
function SubType(name,age){
//繼承了SuperType屬性
SuperType.call(this栋艳,name);
this.age = age;
}
//繼承方法
SubType.prototype = new SuperType();
SubType.prototype.constructor = subType;
三、函數(shù)
1.遞歸
function factorial(num){
if(num < 1){
return 1;
} else {
return num * arguments.callee(num -1);
}
}
factorial(5)? ? // 120
2.閉包
閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)句各。
常用創(chuàng)建方式:在一個(gè)函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù)吸占。
四、BOM瀏覽器對(duì)象模型
window對(duì)象
window.open(‘url’,? target屬性或窗口名稱)
_blank - URL加載到一個(gè)新的窗口凿宾。這是默認(rèn)
_parent - URL加載到父框架
_self - URL替換當(dāng)前頁(yè)面
_top - URL替換任何可加載的框架集
name-窗口名稱
關(guān)閉打開(kāi)的窗口
var newWindow = window.open(‘http://www.baidu.com’);
newWindow.close();
五矾屯、DOM操作
選擇符API
querySelector() 返回該模式匹配的第一個(gè)css選擇符元素
querySelectorAll()? 返回該模式匹配的所有css選擇符元素