首页 > 代码库 > javascript高级知识分析——作为对象的函数

javascript高级知识分析——作为对象的函数

代码信息来自于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] );

 

javascript高级知识分析——作为对象的函数