JavaScript学习笔记第一天

简单对象的创建

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库

    原文作者:codelove
    原文地址: https://www.jianshu.com/p/e3b0b2f9b60b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞