AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# 获取js对象所有方法 **Object.keys()** **for...in** **Object.getOwnPropertyNames()** ``` <pre class="calibre10">``` var testObj <span class="token1">=</span> Object<span class="token3">.</span><span class="token4">create</span><span class="token3">(</span><span class="token3">{</span><span class="token3">}</span><span class="token3">,</span> <span class="token3">{</span> getFoo<span class="token3">:</span> <span class="token3">{</span> value<span class="token3">:</span> <span class="token5">function</span> <span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> <span class="token5">return</span> this<span class="token3">.</span>foo<span class="token3">;</span> <span class="token3">}</span><span class="token3">,</span> enumerable<span class="token3">:</span> <span class="token6">false</span> <span class="token3">}</span> <span class="token3">}</span><span class="token3">)</span><span class="token3">;</span> testObj<span class="token3">.</span>name <span class="token1">=</span> <span class="token2">"shangguan"</span><span class="token3">;</span> testObj<span class="token3">.</span>age <span class="token1">=</span> <span class="token6">25</span><span class="token3">;</span> testObj<span class="token3">.</span>action <span class="token1">=</span> <span class="token5">function</span><span class="token3">(</span><span class="token3">)</span><span class="token3">{</span> <span class="token5">return</span> this<span class="token3">.</span>name<span class="token3">;</span> <span class="token3">}</span><span class="token3">;</span> var keys<span class="token1">=</span> Object<span class="token3">.</span><span class="token4">keys</span><span class="token3">(</span>testObj<span class="token3">)</span><span class="token3">;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>keys<span class="token3">)</span><span class="token3">;</span> var keys <span class="token1">=</span><span class="token3">[</span><span class="token3">]</span><span class="token3">;</span> <span class="token5">for</span><span class="token3">(</span>var i <span class="token5">in</span> testObj<span class="token3">)</span><span class="token3">{</span> keys<span class="token3">.</span><span class="token4">push</span><span class="token3">(</span>i<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>keys<span class="token3">)</span><span class="token3">;</span> var keys <span class="token1">=</span> Object<span class="token3">.</span><span class="token4">getOwnPropertyNames</span><span class="token3">(</span>testObj<span class="token3">)</span><span class="token3">;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>keys<span class="token3">)</span><span class="token3">;</span> ``` ``` 所有继承了 Object 的对象都会继承到 `hasOwnProperty` 方法。这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。 ### 使用 `hasOwnProperty` 方法判断属自身属性与继承属性 ``` <pre class="calibre17">``` <span class="token5">function</span> <span class="token4">Demo</span><span class="token3">(</span>name<span class="token3">)</span><span class="token3">{</span> this<span class="token3">.</span>name<span class="token1">=</span>name<span class="token1">||</span><span class="token2">'Tom'</span><span class="token3">;</span><span class="token">//自身属性</span> <span class="token3">}</span> Demo<span class="token3">.</span>prototype<span class="token3">.</span>age<span class="token1">=</span><span class="token2">'10'</span><span class="token3">;</span> var demo<span class="token1">=</span><span class="token5">new</span> <span class="token4">Demo</span><span class="token3">(</span><span class="token2">'lilei'</span><span class="token3">)</span><span class="token3">;</span>                <span class="token">//原型链的,非私有的属性</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>demo<span class="token3">.</span><span class="token4">hasOwnProperty</span><span class="token3">(</span><span class="token2">'age'</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//false</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>demo<span class="token3">.</span><span class="token4">hasOwnProperty</span><span class="token3">(</span><span class="token2">'toString'</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">// 返回 false</span> <span class="token">//自身属性</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>demo<span class="token3">.</span><span class="token4">hasOwnProperty</span><span class="token3">(</span>name<span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//true</span> ``` ```