JS 函数和对象

2017-09-07  本文已影响22人  淘码小工
1 .JS可以将函数赋给一个变量,例如
function addOne(num) {
    return num + 1;
}

var plusOne = addOne;
var result = plusOne(1);

返回2

2. JS 还可以创建函数时不指定函数名,例如:
var f = function(num) {
    return num + 1;
};
var result = f(1);

函数实际上是一个值,你知道可以把值存储在变量或者数组中,可以将值作为一个参数传递给函数,还可以把值赋值给对象的属性。

因此在JS中window.onload加载函数时就可以这么写:

//当成初始化的函数
window.onload = function() {
    //init
}

3.javascript对象的秘密

Javascript创建对象
var fido = {
    name:"Fido",
    weight:40,
    breed:"Mixed",
    loves:["walks", "fetching balls"]
};  //注意这个对象后面要加分号

这个对象有四个属性,name,weight,bread和loves,
每个属性用一个逗号分隔,不是分号。

    function bark(dog) {
        if(dog.weight > 25) {
            alert("WOOF");
        }
    }
    bark(fido);
fido.age = 5; 
delete fido.age;

将一个对象赋值给变量,这个变量会包含这个对象的一个引用,而不是对象本身,可以把引用想成是对象的指针

var fido = {
    name:"Fido",
    weight:40,
    breed:"Mixed",
    loves:["walks", "fetching balls"]
    bark: function() {
        alert("woof woof!") //使用匿名函数
        }
    };  //注意这个对象后面要加分号

使用构造函数创建对象

下面先为狗建立一个构造函数,它有名字,品种和重量属性,另外还有一个犬叫方法。

function Dog(name, breed, weight) {
    this.name = name;
    this.breed = breed;
    this.weight = weight;
    this.bark = function() {
        if(this.weight > 25) {
            ...
        }else {
            ...
        }
    };  //注意:这个方法后面要使用分号
}

86行 构造函数命名首字母要大写,跟类一样。其形参取我们希望的对象属性值。

87-90行表示我们把对象属性初始化为传入构造函数的值。属性名和形参名不要求相同,不过他们通常是一样的,这也是一个约定。

注意:这个语法与对象语法有所不同。这些是语句,所以需要用”;“结束个语句,就像我们通常在函数中的做法一样

var fido = new Dog("Fido", "Mixed", 38);
fido.bark();

在方法中,this就代表哪个对象调用这个方法,这个方法中的this就代表这个对象,可以使用this.属性来获取属性的值。


window对象

window对象表示你的javaScript程序的全局环境,同时还表示应用的主窗口。
windows的几个重要的属性

window属性
window方法

window对象相当于你的全局环境,所以即使没有在前面加上window,window的属性或方法名也能顺利解析。


document对象

document对象用来访问DOM的对象,他是window对象的一个属性

document的属性
document的方法

元素对象

通过getElementById方法获取的元素也是一个对象。

元素的属性
元素的方法

可以使用方法appendChild和insertBefore向DOM中插入新元素,作为这个元素的子元素

可以使用setAttribute和getAttribute来设置和获取元素中的属性,比如‘‘src’’,"class"和“id”



知行办公,专业移动办公平台https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com
【Master】zelo,616701261@qq.com
【运营】运维艄公,897221533@qq.com;****
【产品设计】流浪猫,364994559@qq.com
【体验设计】兜兜,2435632247@qq.com
【iOS】淘码小工,492395860@qq.comiMcG33K,imcg33k@gmail.com
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com
【java】首席工程师MR_W,feixue300@qq.com
【测试】土镜问道,847071279@qq.com
【数据】fox009521,42151960@qq.com
【安全】保密,你懂的。

上一篇下一篇

猜你喜欢

热点阅读