《Pro JavaScript tech》译书开卷阅读。
对象(object)是一系列属性的集合,与其他语言的散列表(也称哈希表)结构类似。HashTable 基于哈希函数而建立的,以键/值对这样的数据字典为存储格式(formatting)。比如CSS(层叠样式表)语言中块状结构体里面的语法构成与之类似。
运行时“反射”机制功能实现直接赋值的示例代码如下:
Code
var testCase = {
};
testCase['i'] = 0;
testCase['run'] = function() {
return this.i;
}
console.log(testCase.run());
var testCase = {
};
testCase['i'] = 0;
testCase['run'] = function() {
return this.i;
}
console.log(testCase.run());
这与散列表的枚举方法类似到完全雷同的地步。。。
JavaScript中的一切皆为对象。第二章是本书最重要的一章。
函数重载:利用函数的参数是伪数组,和利用类型检查:没有提供参数必为'undefined'类型,两者均可实现重载函数。
作用域:
Code
(function(){
var getStr = function() {
var str1 = '局部变量';
};
})();
JavaScript 作用域只与函数有关。而闭包与作用域有关:
(function(){
var getStr = function() {
var str1 = '局部变量';
};
})();
Code
(function(){
var str1 = 'I love JavaScript. ';
var getStr = function(str2) {
return function() { console.log(str1 + str2); };
};
s = getStr('me too.')
s();
}());
(function(){
var str1 = 'I love JavaScript. ';
var getStr = function(str2) {
return function() { console.log(str1 + str2); };
};
s = getStr('me too.')
s();
}());