js javascript">js-keyword">var arr = [js-string">'你好',js-string">'哈喽',js-string">'早安']
js-keyword">var a = js-number">1;js-comment">//变量
arr.a = js-number">1;js-comment">//属性
js-comment">//方法
arr.fn = js-function">js-keyword">functionjs-params">(){
alert(js-keyword">this) js-comment">//this == arr
}
vDiv.onClick = js-function">js-keyword">functionjs-params">(){
alert(js-keyword">this) js-comment">//this == vDiv
}
window.onload = js-function">js-keyword">functionjs-params">(){
atert(js-keyword">this) js-comment">//this == window
}
js-comment">//函数
js-function">js-keyword">function js-title">fnjs-params">(){
alert(js-keyword">this) js-comment">//this == window
}
函数fn等价于:
window.fn = js-function">js-keyword">functionjs-params">(){
alert(js-keyword">this) js-comment">//this == window
}
也等价于:
fn = js-keyword">new js-built_in">Function(js-string">"alert(this)")
构造函数:
js javascript">js-keyword">var obj = js-keyword">new js-built_in">Object();
obj.name = js-string">'小明'
obj.showName = js-function">js-keyword">functionjs-params">(){
alert(name);
}
js-comment">//构造函数
js-function">js-keyword">function js-title">creatPersonjs-params">(name){
js-keyword">var js-keyword">this = js-keyword">new js-built_in">Object();
js-comment">// this == obj
js-keyword">this.name = name
js-keyword">this.showName = js-function">js-keyword">functionjs-params">(){
alert(name);
}
js-keyword">return js-keyword">this;
}
js-keyword">var person1 = creatPerson(name);
等价于:
js-function">js-keyword">function js-title">creatPersonjs-params">(name){
js-comment">// this == creatPerson
js-keyword">this.name = name
js-keyword">this.showName = js-function">js-keyword">functionjs-params">(){
alert(name);
}
}
js-keyword">var person1 = js-keyword">new creatPerson(name);
prototype:原型
给类添加公共方法。不同的对象调用的是同一个方法。
js javascript">js-built_in">String.prototype.trim = js-function">js-keyword">functionjs-params">(){
js-keyword">return js-keyword">this.replace(js-regexp">/^\s+|\s+$/,js-string">'') ;
}
str1.trim==str2.trim
var date = new Date();
typeof(Date) == function
对象内调用系统方法:
js javascript">js-function">js-keyword">function js-title">Aeejs-params">(id){
js-keyword">this.age = js-number">12;
js-comment">// this.fn = function(){
js-comment">// alert(this.age)
js-comment">// }
js-keyword">var _this = js-keyword">this;
setinterval(js-function">js-keyword">functionjs-params">(){ _this.fn()}.fn,js-number">1000);
document.getElementById(id).onclick = js-function">js-keyword">functionjs-params">(){
_this.fn();
}
}
Aee.prototype.fn = js-function">js-keyword">functionjs-params">(){
alert(js-keyword">this.age)
}
继承
Worker继承Person
js javascript">js-function">js-keyword">function js-title">Workerjs-params">(name,age,job){
Person.call(js-keyword">this,name,age);
js-comment">// Worker.prototype = Person.prototype;//父类Person也多了一个showJob方法。
js-keyword">for(js-keyword">var i js-keyword">in Person.prototype){
Worker.prototype[i] = Person.prototype[i]js-comment">//父类Person不会多一个showJob方法
}
js-keyword">this.job = job;
}
Worker.prototype.showJob(){
alert(js-keyword">this.job);
}