美文网首页
JavaScript学习笔记第一天

JavaScript学习笔记第一天

作者: z_love | 来源:发表于2016-12-05 10:19 被阅读0次

    简单对象的创建

    1.创建一个对象

    var newObject = new Object();
    

    2.添加元素

    newObject.firstName = "frank";
    

    3.添加函数

    newObject.sayName = function() {
    alert(this.firstName)
    } 
    

    4.调用函数

    newObject.sayName();
    

    5.实质:实际上是关联数组,可以用一下方法来检索元素和调用函数

    var theFirstName = newObject["firstName"];
    newObject["sayName"] ();
    

    6.基于逻辑调用函数

    var whatFunction;
    if (whatVolume == 1) {
    whatFunction = "sayName"
    }
    if (whatVolume == 2) {
    whatFunction = "sayLoudly"
    }
    newObject[whatFunction]();
    

    7.使用已存在的函数进行添加函数

    function sayLoudly() {
    alert(this.firstName.toUpperCase());
    }
    newObject.sayLoudly = sayLoudly;
    

    使用JSON对象(JavaScript Object Notation)

    1使用JSON创建前面的对象

    function sayLoudly() {
    alert(this.firstName.toUpperCase());
    }
    var newObject = {
    firstName : "frank",
    sayName : function() { alert(this.firstName) },
    sayLoudly : sayLoudly
    }
    

    2.对象的嵌套(在newObject中嵌套LastName对象)

    function sayLoudly() {
    alert(this.firstName.toUpperCase());
    }
    var newObject = {
    firstName : "frank",
    sayName : function() { alert(this.firstName); },
    sayLoudly : sayLoudly,
    LastName : {
    lastName :  "za",
    sayName : function() { alert(this.lastName); }
    }
    }
    

    类的定义

    本质:是一个函数
    定义:

    function newClass() {
    alert("constructor");
    this.firstName = "frank";
    this.sayName = function() {
    alert(this.firstName);
    }
    }
    var nc = new newClass();
    nc.sayName();
    

    不足之处:每个实例都含有并存储类的属性(必须要)和方法(只想要一个地方存就可以了)

    原型

    目的:为了解决方法被存在每一个实例中的内存问题,此
    原理:定义在对象的原型中欧的所有属性和方法,在运行时会附着在那个新的实例上

    function newClass() {
    this.firstName = "frank";
    }
    newClass.prototype.sayName = function() {
    alert(this.firstName);
    }
    var nc = new newClass();
    nc.firstName
    

    注释:内存中sayName()函数只会有一个单独的实例,这个方法实际上是附加在每个实例上的,this是在运行时被计算的

    各种方式比较

    1.当你需要创建一个很大的类,而且可能会有很复杂的实例,那么最好使用原型的方法
    2.当你要创建一个单独的类,并且知道这个类只有一个实例,可以直接定义一个类
    3.如果你的对象层级关系嵌套很多,或者需要一个动态方式定义一个对象,或者需要将对象序列化并且经过网络传输,或者需要重构一个从服务器传来的对象的时候,建议 使用JSON的方法

    面向对象的好处:

    1.隐藏数据

    function newClass() {
    this.firstName = "Frank";
    lastName = "Zame";
    }
    var nc = new newClass();
    alert(nc.firstName);
    alert(nc.lastName);
    

    注:第二个会打印undefind,只有加了this的字段才能在类外访问
    2.可以调用其他对象中的函数

    function newClass() {
    this.firstName = "Frank";
    this.toUC = string.toUpperCase;
    this.toString = function() {
    return this.toUC(this.firstName);
    }
    }
    var nc = new newClass();
    alert(nc);
    

    柔性衰减和不唐突JavaScript

    1.保持JavaScript的队医
    2.允许柔性衰减
    3.从不使用浏览器嗅探脚本来判断一个浏览器的能力
    4.任何情况下都不要写浏览器不兼容的代码
    5.合适的作用域变量
    6.对于可访问性,避免需要鼠标事件触发的触发器

    JavaScript库

    相关文章

      网友评论

          本文标题:JavaScript学习笔记第一天

          本文链接:https://www.haomeiwen.com/subject/vaofmttx.html