代码信息来自于http://ejohn.org/apps/learn/。
函数和对象是不是非常相似?
var obj = {}; var fn = function(){}; console.log( obj && fn );//true
var obj = {}; var fn = function(){}; obj.prop = "some value"; fn.prop = "some value"; console.log( obj.prop == fn.prop, "都是对象,都有属性." );
可不可以把返回的结果存储到缓存里?
function getElements( name ) { var results; if ( getElements.cache[name] ) { results = getElements.cache[name]; } else { results = document.getElementsByTagName(name); getElements.cache[name] = results; } return results; } getElements.cache = {}; console.log( "返回的结果: ", getElements("pre")); ///HTMLCollection [ <pre> ] console.log( "返回和缓存完全相同", getElements("pre") === getElements.cache.pre); //true
当我们访问的通过一系列操作获取到的内容,通过缓存先前的结果,可以提高性能。
题目:修改这段代码,使之可以缓存结果
function isPrime( num ) { var prime = num != 1; for ( var i = 2; i < num; i++ ) { if ( num % i == 0 ) { prime = false; break; } } return prime; } console.log( isPrime(5)); console.log( isPrime.cache[5] );