来源:tsl0922
本指南可以很快让你学会写优美的面向对象JavaScript代码,我保证!学会写简洁的JavaScript代码对一个开发者的发展很重要,随着像Node.js这类技术的出现,你现在可以在服务器端写JavaScript代码了,你甚至可以用JavaScript来查询像MongoDB这样的持久性数据存储。
现在开始写面向对象的JS(OO JS),如果你有什么问题或我遗漏了什么,在下面评论出告诉我。
Literal Notation
Literal Notation只是在JavaScript中创建对象的一种方法,是的,方法不止这一种。当你打算创建一个对象实例的时候Literal Notation是首选的方法。
1 |
var bill = {}; |
上面的代码没太大用处,仅仅只是创建了一个空对象。让我们动态的添加一些属性和方法到这个对象。
1 2 3 4 |
bill.name = "Bill E Goat"; bill.sound = function() { console.log( 'bahhh!' ); }; |
这里我们添加了“name”属性并赋值为“Bill E Goat”。我们不一定要在前面创建空对象,还可以只用一步完成上面 所有的事。
1 2 3 4 5 6 |
var bill = { name: "Bill E Goat", sound: function() { console.log( 'bahhh!' ); } }; |
很简洁漂亮是不是?访问属性和方法也一样很简单。
1 2 |
bill.name; // "Bill E Goat" bill.sound(); // "bahhh" |
如果属性名不是一个有效的标识符我们还可以这么访问它:
1 |
bill['name']; // "Bill E Goat" |
请注意当调用一个方法时我们要在方法名后面添加一对括号去调用它。让我们重写当前的sound方法并传给它一个参数来调用它:
1 2 3 4 |
bill.sound = function(noise) { console.log( noise); }; bill.sound("brrr!"); // "brrr!" He's cold |
很好,我们传入了一个参数(noise),并且在方法的内部访问了它。下面我们继续添加一个方法来访问name属性:
1 2 3 4 |
bill.sayName = function() { console.log( "Hello " + this.name ); }; bill.sayName(); // "Hello Bill E Goat" |
我们可以通过this.propertyName在一个方法内部访问属性
1 |
bill.sayName; // function |
我们把一个叫sound的本地方法赋值给一个对象sound,现在可以在sound后面添加括号并传入参数调用那个方法了。如果我们试着克隆Bill会有什么结果?
1 2 3 4 5 |
var sally 1b78e8a882859541-5">5 |
var sally 我遗漏了什么,在下面评论出告诉我。
Literal Notation Literal Notation只是在JavaScript中创建对象的一种方法,是的,方法不止这一种。当你打算创建一个对象实例的时候Literal Notation是首选的方法。
上面的代码没太大用处,仅仅只是创建了一个空对象。让我们动态的添加一些属性和方法到这个对象。
这里我们添加了“name”属性并赋值为“Bill E Goat”。我们不一定要在前面创建空对象,还可以只用一步完成上面 所有的事。
很简洁漂亮是不是?访问属性和方法也一样很简单。
如果属性名不是一个有效的标识符我们还可以这么访问它:
请注意当调用一个方法时我们要在方法名后面添加一对括号去调用它。让我们重写当前的sound方法并传给它一个参数来调用它:
很好,我们传入了一个参数(noise),并且在方法的内部访问了它。下面我们继续添加一个方法来访问name属性:
我们可以通过this.propertyName在一个方法内部访问属性
我们把一个叫sound的本地方法赋值给一个对象sound,现在可以在sound后面添加括号并传入参数调用那个方法了。如果我们试着克隆Bill会有什么结果?
|